#include<iostream>#include<vector>using namespace std;int main(){int len;cin>>len;vector<int> arr(len);for(int i=0 ; i< len ; i++ )arr[i]=i;for(i=0 ; i< len ; i++ )cout<<arr[i]<<" ";return 0;}提示D:\c++\555555\zhizhen-9.cpp||In function 'int main()':|D:\c++\555555\zhizhen-9.cpp|16|error: name lookup of 'i' changed for ISO 'for' scoping|D:\c++\555555\zhizhen-9.cpp|16|note: (if you use '-fpermissive' G++ will accept your code)|
2 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
樓主的程序可在VC6.0上編譯通過,VC6.0不是很標(biāo)準(zhǔn)。
在標(biāo)準(zhǔn)C++編譯器gcc上編譯不能通過。
在標(biāo)準(zhǔn)C++中,for(int i=0 ; i< len ; i++ )中的i只能在for循環(huán)內(nèi)部有效,在外部無效。
所以第二個(gè)for(i=0;i<len;i++)中的i是未定義的。

長(zhǎng)風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
第二個(gè)for循環(huán)中的i已經(jīng)失效,可以將第一個(gè)for循環(huán)中的i放到for循環(huán)外邊來聲明。
- 2 回答
- 0 關(guān)注
- 1127 瀏覽
添加回答
舉報(bào)
0/150
提交
取消