Code Fix

上級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

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

static付きローカル変数が関数呼び出しをまたいで値を保持し続ける

次回その関数が呼ばれたときも、前回の値から処理が続きます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)