for(int i=0;i<10;i++){printf("%d\n",i);}i++;这个i的作用域在哪里?在C++primer中看到在定义和}之间,但上面的语句也是对的,不知怎么回事?
3 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
这样会报错的,说i没有定义,因为你i的定义在for循环中,所以只能在for中使用i变量,如果想在整个程序中都使用,请在循环外定义。
刚才在vc6.0中测试了,确实没有报错,但是i变量在出了for后就已经销毁了,这个是vc6.0的问题,在vc8中会报错。
作用域是在for后面大括号之间。
慕哥6287543
TA贡献1831条经验 获得超10个赞
for(int i=0;i<10;i++){
printf("%d\n",i);
}
i++;
在for循环体内是对的,这和你所问的问题是两个概念。i只是一个变量。你所说的程序对的,它确实是对的,最少在语法上是对的。前三行,一个循环,满足循环的要求。后面I++只是一个普通的变量自加。
I的作用:他的作用域是在main内,我想应该是main内的全局吧(我自己想的...)
慕丝7291255
TA贡献1859条经验 获得超6个赞
for语句的作用域是大括号内,如果没有大括号那就是第一条语句,也就是说见分号就停,
至于这个程序也是对的,因为只要定义了 i 就能用,但结果不一样,即使结果一样也是凑巧
- 3 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消