【发布时间】:2011-08-08 22:24:59
【问题描述】:
我正在使用 g++ (GCC) 4.6.0,但无法生成正确的结果。在 c++ 中给出以下简单的 for 循环
void sum(){
int sum;
for(int i=0,sum=0;i<=10;sum+=i,++i);
cout << sum << endl;
}
输出给我 0。假设在我添加的 for 循环中
cout << sum << endl;
它给了我 0,1,3... 直到最后一行 0;
我认为我得到 0 的原因是因为 for 循环中的变量阴影?所以我尝试了 ::sum 如 ::sum=0 和 ::sum +=i。但它被编译器抱怨。我也试过了
for(sum=0,int i=0;i<=10;sum+=i,++i);
编译器还抱怨 for 循环的第一个子句中没有主表达式
【问题讨论】:
-
请提供您实际期望的结果。
-
@Martin:为什么要在评论中回答?在一个答案中回答......除了几个人已经这样做了。
-
这里的while循环会更甜:ideone.com/gdm6O:p