変数のC++スコープ
スコープはプログラムの領域であり、大まかに言えば、変数を宣言できる場所は3つあります-
-
ローカル変数と呼ばれる関数またはブロックの内部
-
仮パラメータと呼ばれる関数パラメータの定義。
-
グローバル変数と呼ばれるすべての関数の外。
関数とは何か、そしてそのパラメータは次の章で学びます。ここでは、ローカル変数とグローバル変数について説明します。
ローカル変数
関数またはブロック内で宣言される変数はローカル変数です。それらは、その関数またはコードのブロック内にあるステートメントによってのみ使用できます。ローカル変数は、それ自体の外部で機能することは知られていません。以下は、ローカル変数を使用した例です-
例
#include <iostream> using namespace std; int main () { // Local variable declaration: int a, b; int c; // actual initialization a = 10; b = 20; c = a + b; cout << c; return 0; }
グローバル変数
グローバル変数は、すべての関数の外部、通常はプログラムの上で定義されます。グローバル変数は、プログラムの存続期間を通じてその値を保持します。
グローバル変数には、任意の関数からアクセスできます。つまり、グローバル変数は、宣言後、プログラム全体で使用できます。以下は、グローバル変数とローカル変数を使用した例です-
例
#include <iostream> using namespace std; // Global variable declaration: int g; int main () { // Local variable declaration: int a, b; // actual initialization a = 10; b = 20; g = a + b; cout << g; return 0; }
プログラムはローカル変数とグローバル変数に同じ名前を付けることができますが、関数内のlocalvariableの値が優先されます。例–
例
#include <iostream> using namespace std; // Global variable declaration: int g = 20; int main () { // Local variable declaration: int g = 10; cout << g; return 0; }
出力
10
ローカル変数とグローバル変数の初期化
ローカル変数が定義されている場合、システムによって初期化されないため、自分で初期化する必要があります。グローバル変数は、次のように定義すると、システムによって自動的に初期化されます–
データ型 | イニシエーター |
---|---|
int | 0 |
char | '\ 0' |
フロート | 0 |
ダブル | 0 |
ポインタ | NULL |
-
Pythonの変数のスコープ
プログラム内のすべての変数は、そのプログラム内のすべての場所でアクセスできるとは限りません。これは、変数を宣言した場所によって異なります。 変数のスコープは、特定の識別子にアクセスできるプログラムの部分を決定します。 Pythonには2つの基本的な変数スコープがあります- グローバル変数 ローカル変数 グローバル変数とローカル変数 関数本体の内部で定義された変数にはローカルスコープがあり、外部で定義された変数にはグローバルスコープがあります。 つまり、ローカル変数には宣言されている関数内でのみアクセスできますが、グローバル変数にはすべての関数からプログラム本体全体でアクセスできます。
-
Pythonのグローバル変数とローカル変数?
変数には、グローバル変数とローカル変数の2種類があります。 グローバル変数のスコープはプログラム全体ですが、ローカル変数のスコープはそれが定義されている関数に限定されています。 def func(): x = "Python" print(x) print(s) s = "Tutorialspoint" print(s) func() print(x) 上記のプログラムでは、xはローカル変数ですが、sはグローバル変数です。ローカル変数にアクセスできるのは、定義されている関数(上記のfunc())内でのみであり、スコープ外のローカル変数(func())