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