为了账号安全,请及时绑定邮箱和手机立即绑定

c++这个错哪里了 新人

c++这个错哪里了 新人

C++
MM们 2018-07-29 13:13:37
#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 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

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

查看完整回答
反对 回复 2018-08-04
?
长风秋雁

TA贡献1757条经验 获得超7个赞

第二个for循环中的i已经失效,可以将第一个for循环中的i放到for循环外边来声明。

查看完整回答
反对 回复 2018-08-04
  • 2 回答
  • 0 关注
  • 1064 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信