× 無料のユーザー登録をすると学習状況を管理することができるようになります

#13 変数の有効期限について

さて、前回は変数の「有効範囲」を見ましたが、「有効期限」についても見ていきたいと思います。
普通に変数を宣言すると、他の関数からは参照できない「ローカル変数」になりますが、同時に「自動変数」とも呼ばれます。

変数が値を保持する期限について説明していきます。

  • 自動変数
  • 静的変数(static)

このレッスンでは gcc 4.1.2 を使用しています。

2012年10月18日
関数 f() の先頭で「static int a = 0;」と宣言しているので、関数 f() を複数回呼ぶと毎回 a に 0 がセットされるかのように見えますが、static をつけて宣言された変数は、2回目以降はその宣言部分は無視されます。

無視されるのは宣言部分だけなので、以下のように書くと当然毎回変数 a には 0 がセットされ、処理が継続されます。

void f(void) {
  static int a;
  a = 0;
  a++;
  printf("a:%d\n", a);
}

このレッスンの問題を報告する

この動画に関する、よくある質問はまだありません。

プレミアム会員(月額980円)になると、全レッスンの素材ファイルをダウンロードできます。

詳しい説明を読む

プレミアム会員(月額980円)になると、全レッスンのソースコードを見られるようになります。

詳しい説明を読む

このレッスンの問題を報告する

先生に質問してみよう (試験運用中)