C & C++ FAQ
|
C++ | for文の( )内で宣言された識別子の有効範囲はどうなっていますか。 |
( )内の第1部分であるfor-init-statementで宣言された識別子の有効範囲は、このfor文のみとなります。したがって、for (for-init-statement conditionopt ; expressionopt) statement
と、それぞれのfor文内でiの宣言が必要ですし、for (int i = 0; i < 10; i++) a[i] = i; for (int i = 10; i < 100; i++) b = c * z[i];
では、zに代入される値は10となります。i = 10; for (int i = 0; i < 5; i++) a[i] = i; /* このiはfor文で宣言されたi */ z = i; /* このiは最初に宣言されたi */
標準C++ | §6.5.3 | The for statement |