関数の中の値を確認する
関数は、メイン関数などから呼び出すと、呼び出された先の関数内では、変数の値は、 生きています(残っています)が、この関数の外へ出てしまうと、この変数は、無効になり、 消えてしまいます。ただし、グローバル変数の場合は、異なります。
関数の中で、変数の値がどのようになっているのかを、簡単なサンプルプログラムで 確認してみることにします。 変数「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」という関数があります。