上級 › static付きローカル変数が関数呼び出しをまたいで値を保持し続ける › パターン2
static付きローカル変数が関数呼び出しをまたいで値を保持し続ける
関数内でstaticを付けて宣言した変数は、関数を抜けても値が消えません。
1 #include <stdio.h> 2 3 int counter(void) { 4 ______ int count = 10; ^ 5 count += 5; 6 return count; 7 } 8 9 int main(void) { 10 printf("%d\n", counter()); 11 printf("%d\n", counter()); 12 return 0; 13 }
出力: 15
15期待: 15
20
空欄を埋めてコンパイル・実行を通す
初期化式(count = 10)は最初の1回だけ実行されます。staticを付けなければ毎回10からやり直しになるため、常に同じ結果になります。
次の問題