大域変数と局所変数の違いは、変数が参照できる範囲(スコープ)によって決まります。疑似言語を使って説明します。https://cogproject.github.io/pseudo/ で検証可能です。
大域変数
- 定義: プログラム全体で参照できる変数です。通常、プログラムの冒頭やメインのスコープで定義されます。
- スコープ: プログラムのどこからでもアクセスできます。
例:
//大域変数の定義
整数型: x
x ← 10
手続き FuncA()
//関数内でも大域変数xにアクセスできる
print(x)
手続き終わり
手続き FuncB()
//関数内でも大域変数xにアクセスできる
x ← x + 5
print(x)
手続き終わり
FuncA() // 出力: 10
FuncB() // 出力: 15
print(x) // 出力: 15
局所変数
- 定義: 関数やブロック内でのみ使用できる変数です。関数やブロックが終了すると、局所変数も消えます。
- スコープ: 変数が定義された関数やブロック内でのみ有効です。
例: https://cogproject.github.io/pseudo/ で検証可能
手続き FuncA()
整数型: y //局所変数
y ← 20
print(y)
手続き終わり
手続き FuncB()
整数型: y //局所変数
y ← 5
y ← y * 2
print(y)
手続き終わり
FuncA() // 出力: 20
FuncB() // 出力: 10
// 関数の外では局所変数yにアクセスできない
print(y)
違いのまとめ
- 大域変数: プログラム全体でアクセスできる。
- 局所変数: 定義された関数やブロック内でのみアクセスできる。
このように、変数がどこで定義されるかによって、その変数がアクセスできる範囲が変わります。
コメント