一个c++的作用域问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 13:02:06
#include "stdafx.h"
#include<iostream>

int i=100,sum;
int main(int argc, char* argv[])
{
for(int i=1;i!=10;i++)
sum+=i;
std::cout<<i<<std::endl<<sum<<std::endl;
return 0;
}
结果i==10而不等与100,为什么?

全局变量 i 被你在for里的局部变量 i 给屏蔽了。
将for语句括号里的 i 改成 j 就成了。

引用全程变量要用::i

i应该等于10啊,为什么等100,你在for(int i=1;i!=10;i++) 中已经将i 初始化为1了啊,然后自加到10就停了,当然是1了