値による呼び出しとアドレスによる呼び出しの違いは何ですか

目次:

Anonim

NS 主な違い 値による呼び出しとアドレスによる呼び出しの間は、 値による呼び出しでは、実際のパラメーターの値が関数の仮パラメーターにコピーされ、アドレスによる呼び出しでは、実際のパラメーターのアドレスが関数の仮パラメーターにコピーされます。

関数は、特定のタスクを複数回実行する一連のステートメントです。 mainメソッド内にすべてのプログラムステートメントを記述するのではなく、プログラムをいくつかの関数に分割し、必要に応じてそれらを呼び出すことができます。また、これにより、プログラムが再利用可能になり、読みやすくなります。関数に関連する引数には、実パラメータと仮パラメータの2種類があります。実際のパラメーターは、関数を呼び出すときに関数に渡される値ですが、正式なパラメーターは、関数を呼び出すときに値を受け取る関数内の変数です。 「C」などのプログラミング言語で関数を呼び出す2つの方法は、値による呼び出しとアドレスによる呼び出しです。

値による呼び出し、アドレスによる呼び出し、関数

値による呼び出しとは

関数は定義されたタスクを実行し、答えを返します。戻り型がvoidの場合、タスクを実行し、値を返しません。値による呼び出しでは、実際の引数が関数の仮パラメーターにコピーされます。この関数は、実際のパラメーターではなく、正式なパラメーターの値を使用します。したがって、元の値は変更されません。例は次のとおりです。

図1:値による呼び出しを伴うプログラム

上記の例では、mainメソッドに「a」と「b」の2つの整数値があります。スワップ関数はこれら2つの値を取得します。関数内では、「a」値がxにコピーされ、b値がyにコピーされます。したがって、xは10、yは20です。関数内では、一時変数はこれら2つの値を交換するのに役立ちます。ここで、xは20、yは10です。関数の実行後、制御はメイン関数に戻ります。 「a」と「b」を印刷すると、元の値が印刷されます。つまり、「a」の場合は10、「b」の場合は20です。したがって、これは値による呼び出しです。この場合、実際の値は変わりません。ただし、変更は関数内にのみ反映されます。

住所による呼び出しとは

アドレスによる呼び出しの別名は ポインタによる呼び出し。アドレスによる呼び出しメソッドは、引数のアドレスを仮パラメーターにコピーします。この関数は、アドレスを使用して実際の値にアクセスします。したがって、関数内で行われた変更は元の値に反映されます。例は次のとおりです。

図2:アドレスによる呼び出しを伴うプログラム

上記の例では、メインプログラムに「a」と「b」の2つの整数があります。 「a」と「b」のアドレスは機能に渡されます。関数はこれらのアドレスを取得します。一時変数は、2つの値を交換するのに役立ちます。関数はアドレスを使用して実際の値を操作するため、関数内の変更はメインプログラムに表示されます。したがって、実際の「a」と「b」の値は10と20ですが、「a」の値は20、「b」の値は10になります。

値による呼び出しとアドレスによる呼び出しの違い

意味

値による呼び出しは、引数の実際の値を関数の仮パラメーターにコピーすることによって関数に引数を渡す方法です。ポインターによる呼び出しは、引数のアドレスを関数の仮パラメーターにコピーすることによって関数に引数を渡す方法です。関数。

機能性

値による呼び出しでは、実際のパラメーターの値が関数の正式なパラメーターにコピーされます。ただし、アドレスによる呼び出しでは、実際のパラメーターのアドレスが関数の仮パラメーターにコピーされます。したがって、機能は、値による呼び出しとアドレスによる呼び出しの主な違いです。

元の値への影響

値による呼び出しとアドレスによる呼び出しのもう1つの大きな違いは、元の値への影響です。値による呼び出しは元の値に影響しませんが、アドレスによる呼び出しは元の値に影響します。

結論

値による呼び出しとアドレスによる呼び出しの主な違いは、値による呼び出しでは、実際のパラメーターの値が関数の仮パラメーターにコピーされるのに対し、アドレスによる呼び出しでは、実際のパラメーターのアドレスが仮パラメーターにコピーされることです。関数の。簡単に言うと、値による呼び出しは元の値を変更しませんが、アドレスによる呼び出しは元の値を変更します。

リファレンス:

1.「C関数」。 Www.tutorialspoint.com、Tutorials Point、ここから入手できます。

値による呼び出しとアドレスによる呼び出しの違いは何ですか