重複の可能性:
if ステートメントの変数のスコープ
次のコードがあるとします。
int y = 5;
if (.... ) {
int x = 10;
x = y;
}
if スコープの外で変数 x を使用する方法はありますか?
重複の可能性:
if ステートメントの変数のスコープ
次のコードがあるとします。
int y = 5;
if (.... ) {
int x = 10;
x = y;
}
if スコープの外で変数 x を使用する方法はありますか?
いいえ。 の範囲は の範囲x内ifです。x他の場所で使用する場合は、外部で宣言ifします。xその次の行で参照しようとするifと、コンパイル エラーが発生します。
ブロックのx外に置くことは別として、いいえ。if変数はそのスコープ内でのみ使用できます。
これは、C++ 標準が でそれについて述べなければならないことですbasic.scope.declarative:
すべての名前は、宣言領域と呼ばれるプログラム テキストの一部で導入されます。宣言領域は、その名前が有効なプログラムの最大の部分です。つまり、その名前は、同じエンティティを参照する非修飾名として使用できます。 . 一般に、それぞれの特定の名前は、スコープと呼ばれるプログラム テキストの不連続な部分内でのみ有効です。
結果として、それを他の場所で使用することは無効です。