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