Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラミング 2 静的変数.

Similar presentations


Presentation on theme: "プログラミング 2 静的変数."— Presentation transcript:

1 プログラミング 2 静的変数

2 広域変数と局所変数 (通常の)局所変数 広域変数 関数(ブロック)の中で定義される変数 関数(ブロック)の中だけで通用する
定義された関数(ブロック)の外では見えない 関数(ブロック)の実行のたびに作られ,実行が終了すると 消滅する 広域変数 関数の外で定義される変数 定義以降ファイル全体で通用する プログラム実行の間,1 つの実態を持つ 関数の実行が終了しても消えない

3 static を伴う局所変数 static を伴う局所変数 static を伴う変数を使うと,関数に状態を持たせるこ とができる
関数(ブロック)内で定義される 関数(ブロック)の中だけで通用する プログラム開始時に一度だけ実体が作られ,プログラム終了 まで生存する 関数(ブロック)の実行が終了しても消滅しない static を伴う変数を使うと,関数に状態を持たせるこ とができる

4 static 変数の例(1) void func(void) { int a = 0; printf(“%d\n”, a); a++; return; } int main(void) { int i; for (i = 0; i < 10; i++) { func(); } return 0; }

5 static 変数の例(2) void func(void) { int a = 0; printf(“%d\n”, a); a++; return; } この a は通常の局所変数 関数実行のたびに作られ,関数の実行が終了すると消滅 「a++」されても関数終了で消えてしまう 出力されるのは毎回「0」

6 static 変数の例(3) void func(void) { static int a = 0; printf(“%d\n”, a); a++; return; } int main(void) { int i; for (i = 0; i < 10; i++) { func(); } return 0; }

7 static 変数の例(4) void func(void) { static int a = 0; printf(“%d\n”, a); a++; return; } この a は static を伴う局所変数 プログラム開始時に一度だけ作られ(初期化も一度だけ), 関数が終了しても消えない 「a++」されたことが保持される 呼び出しのたびに出力される値は 1 ずつ大きくなる

8 static 変数の特徴 通用範囲 生存期間 通常の局所変数 関数(ブロック)内 static 局所変数 プログラム実行中ずっと 広域変数
ファイル内(宣言以降)


Download ppt "プログラミング 2 静的変数."

Similar presentations


Ads by Google