#include<stdio.h>
int add(int);
int main()
{ int sum;
sum = add(10);
printf("sum = %d\n", sum);
sum = add(20);
printf("sum = %d\n", sum);
sum = add(100);
printf("sum = %d\n", sum);
return 0;
}
int add(int x)
{ static int gokei = 0;
gokei += x;
return gokei; }
私はint gokei = 0;とあるので、読み込むたびにsumは0になって、
sum = 10,sum = 20,sum = 100と表示されると思うのですが、
参考書にはコンパイルして実行した結果sum = 10,sum = 30,sum = 130(改行省略)
と表示されると書いてありました。
staticにした変数は書き換えられなくなるのですか?
それとも、初期化できなくなる、という意味なのでしょうか?