非参照パラメーターに対応する引き数を使用 して関数を呼び出す場合、値によってその引き数を渡したことになります。パラメーターは、引き数の値を使用して初期化されます。 関数のスコープ内のパラメーターの値を変更することができます (そのパラメーターが const と宣言されていなければ)。 ただし、これらの変更は、呼び出方の関数の引き数の値には、影響しません。
以下は、値による引き数の受け渡しの例です。
次のステートメントは、関数 printf を呼び出します。 この関数は、文字ストリングと、(a および b の値を受け取る) 関数 sum からの戻り値を受け取ります。
printf("sum = %d¥n", sum(a,b));
以下のプログラムは、count の値を関数 increment に渡します。関数は、パラメーター x の値を 1 ずつ増や します。
/** ** An example of passing an argument to a function **/ #include <stdio.h> void increment(int); int main(void) { int count = 5; /* value of count is passed to the function */ increment(count); printf("count = %d¥n", count); return(0); } void increment(int x) { ++x; printf("x = %d¥n", x); }
出力は、main の count の値が未変更のままである ことを示しています。
x = 6 count = 5
関連参照