2.3 例題(1)

  5.例題2-5 大域変数と局所変数の優先度
 大域的スコープを持つ変数と、各関数内で定義された局所変数が同じ「名前」を持てば、局所変数が優先権を持ちます。

 以下のプログラムを実行したときに、その出力は、
VALUE1 = V1
VALUE2 = V2
VALUE3 = V3
VALUE4 = V4
のようになります。このとき、
Q1: VALUE1, VALUE2, VALUE3, VALUE4 (V1,V2,V3,V4)の値はどうなりますか?
(a)プログラムリスト
#include <stdio.h>

void test(void);
int i;

int main(void)
{
  i = 10;
  printf("VALUE1 = %d\n",i);

  test();
  printf("VALUE4 = %d\n",i);
}

void test(void)
{
  int i;

  i = 20;
  printf("VALUE2 = %d\n", i);
  i = 30;
  printf("VALUE3 = %d\n", i);
}

(b)結果
Q1の答え:
VALUE1 = 10
VALUE2 = 20
VALUE3 = 30
VALUE4 = 10

※実際にプログラムを実行して確かめてみよう。