大域的スコープを持つ変数と、各関数内で定義された局所変数が同じ「名前」を持てば、局所変数が優先権を持ちます。
以下のプログラムを実行したときに、その出力は、のようになります。このとき、VALUE1 = V1 VALUE2 = V2 VALUE3 = V3 VALUE4 = V4Q1: 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
※実際にプログラムを実行して確かめてみよう。