大域変数と局所変数の違い

プログラミング

大域変数と局所変数の違いは、変数が参照できる範囲(スコープ)によって決まります。疑似言語を使って説明します。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)  

違いのまとめ

  • 大域変数: プログラム全体でアクセスできる。
  • 局所変数: 定義された関数やブロック内でのみアクセスできる。

このように、変数がどこで定義されるかによって、その変数がアクセスできる範囲が変わります。

コメント

タイトルとURLをコピーしました