BohYoh.comトップページへ
C & C++ FAQ
目次

C++ for文の( )内で宣言された識別子の有効範囲はどうなっていますか。

 C++のfor文の構文は以下のようになっています。

for (for-init-statement conditionopt ; expressionopt) statement

( )内の第1部分であるfor-init-statementで宣言された識別子の有効範囲は、このfor文のみとなります。したがって、

for (int i = 0; i < 10; i++) a[i] = i; for (int i = 10; i < 100; i++) b = c * z[i];

と、それぞれのfor文内でiの宣言が必要ですし、

i = 10; for (int i = 0; i < 5; i++) a[i] = i; /* このiはfor文で宣言されたi */ z = i; /* このiは最初に宣言されたi */

では、zに代入される値は10となります。

■ 根拠 ■
標準C++ §6.5.3 The for statement

戻る

BohYoh.comロゴ