0

重複の可能性:
if ステートメントの変数のスコープ

次のコードがあるとします。

int y = 5;
if (.... ) {
 int x = 10;
 x = y; 
}

if スコープの外で変数 x を使用する方法はありますか?

4

2 に答える 2

1

いいえ。 の範囲は の範囲xifです。x他の場所で使用する場合は、外部で宣言ifします。xその次の行で参照しようとするifと、コンパイル エラーが発生します。

于 2012-11-17T03:00:25.647 に答える
0

ブロックのx外に置くことは別として、いいえ。if変数はそのスコープ内でのみ使用できます。

これは、C++ 標準が でそれについて述べなければならないことですbasic.scope.declarative:

すべての名前は、宣言領域と呼ばれるプログラム テキストの一部で導入されます。宣言領域は、その名前が有効なプログラムの最大の部分です。つまり、その名前は、同じエンティティを参照する非修飾名として使用できます。 . 一般に、それぞれの特定の名前は、スコープと呼ばれるプログラム テキストの不連続な部分内でのみ有効です。

結果として、それを他の場所で使用することは無効です。

于 2012-11-17T03:00:45.853 に答える