静的変数

読み:せいてきへんすう
外語:static variable 英語
品詞:名詞

関数クラス、あるいはブロック内で宣言/定義され、その範囲を終了しても値を保持しつづける変数。スタティック変数。

目次

例えば関数が始めて実行された時に変数が確保され、その関数が終わっても内容は消えず、次回以降その関数に来たときにその値が継続して利用されるもの。

C/C++JavaC#などでは、staticを付けて宣言された変数をいう。

staticを付けずに宣言された変数は自動変数(あるいはローカル変数)といい、これはスタックに確保される。一方、静的変数は永続的に記憶するためヒープに確保される。

static変数をインクリメントして結果を表示する関数を3回呼び出す例。

#include <stdio.h>
hoge()
{
    static int fuga = 0;
    printf("%d\n", fuga);
    fuga++;
}
main()
{
    hoge();
    hoge();
    hoge();
}

この例の場合、関数が最初に呼ばれた時に静的変数の内容を0に初期化するが、2回目以降は初期化しない。

したがって、実行結果は、以下のようになる。

> ./a.out
0
1
2
>

もし仮にstaticを消して実行すれば、変数fugaは毎回0に初期化されるため、実行結果は3回とも0になる。

用語の所属
変数 (プログラミング)
関連する用語
静的メンバー変数

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club