から




専門/H17/03

正解 Edit

4

検証 Edit

#include <stdio.h>
int x, y;
int f(int a, int x)
{
	++x;
	++y;
	return a+y;
}

main() {
	int y, z;
	y = 100;
	z = f(10, y);
	z += y;
	printf("%d\n", z);
}
  1. y = 100;
  2. z = f(10, y);
  3. int f(int a, int x) // a = 10 , x = 100
  4. ++x; // x = x + 1 = 100 + 1 = 101
  5. ++y; // y = y + 1 = 0 + 1 = 1
  6. return a+y; // a + y = 10 + 1 = 11, z = 11
  7. z += y; // z = z + y = 11 + 100 = 111
  8. printf("%d\n", z); // z = 111

関数f内でローカル変数yが初期化されていないのが気になる。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 下位頁新規  一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-22 Mon 23:18:48 JST (2918d)