猿问

c++这个错哪里了 新人

#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)|

MM们
浏览 1074回答 2
2回答

蓝山帝景

楼主的程序可在VC6.0上编译通过,VC6.0不是很标准。在标准C++编译器gcc上编译不能通过。在标准C++中,for(int i=0 ; i< len ; i++ )中的i只能在for循环内部有效,在外部无效。所以第二个for(i=0;i<len;i++)中的i是未定义的。

长风秋雁

第二个for循环中的i已经失效,可以将第一个for循环中的i放到for循环外边来声明。
随时随地看视频慕课网APP
我要回答