関数の中の値を確認する
関数は、メイン関数などから呼び出すと、呼び出された先の関数内では、変数の値は、 生きています(残っています)が、この関数の外へ出てしまうと、この変数は、無効になり、 消えてしまいます。ただし、グローバル変数の場合は、異なります。
関数の中で、変数の値がどのようになっているのかを、簡単なサンプルプログラムで 確認してみることにします。 変数「a」の値がどのように変わっているか、確認してみてください。
#include <stdio.h>
int seek_func( int ); /* 関数のプロタイプ宣言 */
int main( void)
{
int a = 1; /* 変数の定義と初期化 */
int b;
b = seek_func ( a );
printf("メイン関数だよ\n");
printf("b=%d\n", b);
printf("a=%d\n", a);
return 0;
}
/* 関数の中の値を確認する関数 */
int seek_func( int a)
{
a = 30; /* 関数の中で引数「a」を変更する */
printf("関数内のa=%d\n", a);
printf("\n");
return a;
}
|
サンプルプログラムで示すように、関数の中では、値を変更して有効になっていても、 関数の外に出てしまうと、値が、消えてしまいます。このような場合を避ける時に よく用いられる方法が、後で説明する、ポインタが用いられます。 引数の部分を、ポインタとして定義するとにより可能となります。 よく知られている関数では、2つの引数の入れ替えをする「swap」という関数があります。
