ローカル変数 【local variable】 局所変数 / 内部変数
プログラミング言語の多くは、サブルーチンや関数、メソッドなどの形で複数のコードを束ねたまとまり(ブロック)を作ることができるが、そのようなブロックの内部でのみ通用する変数のことをローカル変数という。
通常、あるブロック内で変数を宣言すると、自動的にそのブロックを有効範囲(スコープ)とするローカル変数となり、ブロック内のコードからのみ参照や変更ができるようになる。関数内で別の関数を定義するといった入れ子構造の記述が可能な場合、内側のブロックから外側のブロックのローカル変数にアクセスできるかどうかはブロックの種類や言語仕様により異なる。
一般的にローカル変数の寿命はブロックの開始(あるいは変数宣言)から終了までで、関数などの実行が終了して呼び出し元に制御が移ると関数内のローカル変数の内容は破棄されるが、言語によっては内容を維持するよう指定する事ができる場合もある(静的ローカル変数)。
どのような種類のブロックでローカル変数を使用できるかは言語によって異なるが、関数やメソッドなどをスコープとするローカル変数はほとんどの言語に存在する。繰り返しや条件分岐などの制御文で指定される範囲をスコープとするローカル変数を宣言できる言語も存在する。
一方、同じプログラムのどこからでも参照や書換が可能な変数を宣言できる言語もあり、そのような変数をグローバル変数(global variable)という。
(2018.11.9更新)