1999年度のプログラミングIIIの授業は終りました。 この授業のページは参照用の資料として保存しているものです。最新の情報・資料は江上の授業ページで。 |
関数の参照呼出しの簡単な例題 |
以下は簡単な関数呼び出しプログラムである。実行結果を予想(確認)してみてください。
#include <stdio.h> void sub(int a);
main(void)
{
int i;i = 10;
printf("before: %d\n", i);sub(i);
printf("after: %d\n", i);
}void sub(int a)
{
a = 1;
}
以下は上記のプログラムを参照呼出し形式に変更したプログラムである。やはりこのプログラムも実行結果を予想(確認)してみてください。
#include <stdio.h> void sub(int *a);
main(void)
{
int i;i = 10;
printf("before: %d\n", i);sub(&i);
printf("after: %d\n", i);
}void sub(int *a)
{
*a = 1;
}
[Q] 上記の2つのプログラムは実行結果が違っている。なぜだろうか?数値情報がどのように扱われるかという観点から考えてみてください。