1. 程式人生 > >C++編譯錯誤提示 [Error] name lookup of 'i' changed for ISO 'for' scoping

C++編譯錯誤提示 [Error] name lookup of 'i' changed for ISO 'for' scoping

在VC 6 中,i的作用域範圍是函式作用域,在for迴圈外仍能使用變數i 即:

for (int i = 0; i < n; ++i) { 
        //…… 

}

cout<<i<<endl;

這樣則編譯通過

for (int i = 0; i < n; ++i) { 
        //…… 

int i = 5; 

這樣則編譯出錯

在DEV C++ 中,i的作用域僅限於for迴圈,即:

for (int i = 0; i < n; ++i) { 
        //…… 

}

cout<<i<<endl;

這樣則編譯出錯


for (int i = 0; i < n; ++i) { 
        //…… 

int i = 5; 

這樣則編譯通過

同樣的在VS中(vs2015)筆者也進行測試,結果同上述在dec中。