变量不能重定义,但下头代码为什么可以呢
变量不能重定义,但下面代码为什么可以呢?
#include <iostream>
using namespace std;
int main()
{
int i = 100; //定义i
int sum = 0;
for(int i = 0; i != 10; i++) //定义i
sum += 1;
cout <<i<<" "<<sum<<endl;
return 0;
}
//我的理解难道是因为作用域不同的原因造成的吗?还是其他原因呢,望大神能给个标准答案
------解决思路----------------------
你试试把循环外面的变量i定义删除,然后尝试引用i去操作,就会发现编译器提示未定义,so就很清楚了,根本不是同一个变量,所以也不存在重定义。
------解决思路----------------------
如楼上所说,正是作用域的原因
可以参见一下——http://blog.****.net/yunyun1886358/article/details/5632087
http://wenku.baidu.com/link?url=ZpmfWlOyOvx15SpoUA5-_ojaDVKATTxKGzbeC7t87FOjVUJ2IWMWFlBIjWSMyDv7-Hvidc9bl5Tcyi2lRAa-E-5X-nFTfrXn2aZ9X_XAp9y
#include <iostream>
using namespace std;
int main()
{
int i = 100; //定义i
int sum = 0;
for(int i = 0; i != 10; i++) //定义i
sum += 1;
cout <<i<<" "<<sum<<endl;
return 0;
}
//我的理解难道是因为作用域不同的原因造成的吗?还是其他原因呢,望大神能给个标准答案
------解决思路----------------------
你试试把循环外面的变量i定义删除,然后尝试引用i去操作,就会发现编译器提示未定义,so就很清楚了,根本不是同一个变量,所以也不存在重定义。
------解决思路----------------------
如楼上所说,正是作用域的原因
可以参见一下——http://blog.****.net/yunyun1886358/article/details/5632087
http://wenku.baidu.com/link?url=ZpmfWlOyOvx15SpoUA5-_ojaDVKATTxKGzbeC7t87FOjVUJ2IWMWFlBIjWSMyDv7-Hvidc9bl5Tcyi2lRAa-E-5X-nFTfrXn2aZ9X_XAp9y