ローカル変数とグローバル変数の主な違いは、ローカル変数が関数内で宣言されるのに対し、グローバル変数はプログラム内の関数の外側で宣言されることです。
変数とは、メモリの場所に付けられた名前です。
プログラム中、そのメモリ位置に格納された値を操作するために使用することができます。
C言語のようなプログラミング言語には、ローカル変数とグローバル変数の2種類があります。
ローカル変数は、ある関数の中で宣言され、その関数の中だけでアクセス可能である。
一方、グローバル変数は、プログラム内の関数の外側で宣言される。
プログラム全体のどの文からもアクセス可能である。
ローカル変数とは
関数やメソッドは、特定のタスクを実行するための命令の集合体です。
ローカル変数は、関数の内部で宣言された変数です。
この変数は、その特定の関数の中でのみアクセス可能です。
同じプログラムの他の関数は、その変数にアクセスできません。
他の関数からローカル変数を評価すると、エラーが発生します。
プログラムの実行は、mainメソッドから始まります。
メインメソッドから関数を呼び出すと、メインメソッドからその関数に制御が渡されます。
ローカル変数は、その関数が実行されるまでは存在します。
その関数の実行が終了すると、メインメソッドに制御が戻されます。
従って、ローカル変数はその関数が実行されるまでの間だけ存在します。
関数の実行が終了すると、ローカル変数は破棄されます。
上記のプログラムでは、calculate_area 関数に a と b の値が渡されています。
その関数内でareaという新しい変数が作成されている。
この変数はローカル変数です。
この変数はローカル変数で、その関数の中だけでしかアクセスできない。
mainメソッド内ではアクセスできない。
グローバル変数とは
グローバル変数とは、プログラム内のすべての関数の外部で宣言される変数です。
1つのプログラムには複数の関数が存在することがあります。
これらの関数はすべて、このグローバル変数にアクセスすることができます。
そのため、グローバル変数の値は、他の関数によって変更される可能性があり、安全とは言えません。
グローバル変数は、プログラム全体の実行が終了するまで存在します。
グローバル変数は、複数の関数が同じデータに対して操作を行う場合に便利です。
一方、グローバル変数の値は変更される可能性があり、信頼性が低い。
図2:グローバル変数
上記のプログラムでは、’a’と’b’がグローバル変数です。
そのため、sum関数とincrement_values関数でこれらの変数にアクセスすることができます。
sum 関数は a と b の和を表示し、increment_values 関数は a と b の値を 1 ずつ増加させます。
したがって、グローバル変数はプログラム中のすべての関数からアクセス可能である。
ローカル変数とグローバル変数の違い
定義
ローカル変数とは、コンピュータ・プログラムの関数の内部で宣言される変数です。
グローバル変数とは、コンピュータプログラムの関数の外側で宣言される変数です。
これが、ローカル変数とグローバル変数の基本的な違いです。
連想性
さらに、ローカル変数が宣言された関数内でのみアクセス可能なのに対し、グローバル変数はプログラム内のすべての関数からアクセス可能です。
存在
ローカル変数とグローバル変数のもう一つの重要な違いは、その存在です。
ローカル変数は、関数が実行されるまで存在します。
ローカル変数は、関数の実行が開始されると作成され、関数の実行が終了すると破棄されます。
一方、グローバル変数は、プログラムが実行されている間、ずっと存在し続ける。
信頼性
また、ローカル変数は、他の関数から値を変更されることがないため、より信頼性が高く安全です。
逆に、グローバル変数は、複数の関数からアクセス可能である。
したがって、その値を変更することができます。
結論
C言語などのプログラミング言語には、ローカル変数とグローバル変数と呼ばれる2種類の変数があります。
ローカル変数とグローバル変数の違いは、ローカル変数が関数内で宣言されるのに対し、グローバル変数はプログラム内の関数の外側で宣言される点です。