資格暗記無料で始める

変数のスコープ(静的スコープと動的スコープ)とは?

変数のスコープ(静的スコープと動的スコープ)とは、スコープは識別子が参照できる範囲。静的(レキシカル)スコープはソースコード上の入れ子構造で解決し、動的スコープは実行時の呼び出し履歴をさかのぼって解決する。現代の言語はほぼ静的スコープで、コードを読むだけで参照先が決まるため保守性が高い。

へんすうのすこーぷせいてきすこーぷとどうてきすこーぷ

応用情報技術者試験の頻出用語/テクノロジ系/別名:変数のスコープ、静的スコープと動的スコープ


変数のスコープ(静的スコープと動的スコープ)の意味

スコープは識別子が参照できる範囲。静的(レキシカル)スコープはソースコード上の入れ子構造で解決し、動的スコープは実行時の呼び出し履歴をさかのぼって解決する。現代の言語はほぼ静的スコープで、コードを読むだけで参照先が決まるため保守性が高い。

変数のスコープ(静的スコープと動的スコープ)の具体例

関数 f の中で参照する変数 x が、f を「定義した場所」の外側 x を指すのが静的スコープ、「f を呼んだ側」の x を指すのが動的スコープ。同名のグローバル変数とローカル変数がある場合、内側の宣言が外側を覆い隠す(シャドーイング)。

変数のスコープ(静的スコープと動的スコープ)は試験でどう引っ掛けられる?

スコープ(見える範囲)と生存期間(値が保持される期間)は別概念。C の static ローカル変数はスコープが関数内のままで生存期間はプログラム全体。また変数の巻き上げがある言語では、宣言前の参照が「未定義」ではなくエラーになるかが宣言方法で変わる。

変数のスコープ(静的スコープと動的スコープ)と関連する用語

最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。