変数のスコープ(静的スコープと動的スコープ)とは?
変数のスコープ(静的スコープと動的スコープ)とは、スコープは識別子が参照できる範囲。静的(レキシカル)スコープはソースコード上の入れ子構造で解決し、動的スコープは実行時の呼び出し履歴をさかのぼって解決する。現代の言語はほぼ静的スコープで、コードを読むだけで参照先が決まるため保守性が高い。
へんすうのすこーぷせいてきすこーぷとどうてきすこーぷ
変数のスコープ(静的スコープと動的スコープ)の意味
スコープは識別子が参照できる範囲。静的(レキシカル)スコープはソースコード上の入れ子構造で解決し、動的スコープは実行時の呼び出し履歴をさかのぼって解決する。現代の言語はほぼ静的スコープで、コードを読むだけで参照先が決まるため保守性が高い。
変数のスコープ(静的スコープと動的スコープ)の具体例
関数 f の中で参照する変数 x が、f を「定義した場所」の外側 x を指すのが静的スコープ、「f を呼んだ側」の x を指すのが動的スコープ。同名のグローバル変数とローカル変数がある場合、内側の宣言が外側を覆い隠す(シャドーイング)。
変数のスコープ(静的スコープと動的スコープ)は試験でどう引っ掛けられる?
スコープ(見える範囲)と生存期間(値が保持される期間)は別概念。C の static ローカル変数はスコープが関数内のままで生存期間はプログラム全体。また変数の巻き上げがある言語では、宣言前の参照が「未定義」ではなくエラーになるかが宣言方法で変わる。
変数のスコープ(静的スコープと動的スコープ)と関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。