猿问

为什么下面的语句又是对的?什么情况啊?

for(int i=0;i<10;i++){
printf("%d\n",i);
}
i++;
这个i的作用域在哪里?在C++primer中看到在定义和}之间,但上面的语句也是对的,不知怎么回事?

忽然笑
浏览 131回答 3
3回答

慕勒3428872

这样会报错的,说i没有定义,因为你i的定义在for循环中,所以只能在for中使用i变量,如果想在整个程序中都使用,请在循环外定义。刚才在vc6.0中测试了,确实没有报错,但是i变量在出了for后就已经销毁了,这个是vc6.0的问题,在vc8中会报错。作用域是在for后面大括号之间。

慕哥6287543

for(int i=0;i<10;i++){printf("%d\n",i);}i++;在for循环体内是对的,这和你所问的问题是两个概念。i只是一个变量。你所说的程序对的,它确实是对的,最少在语法上是对的。前三行,一个循环,满足循环的要求。后面I++只是一个普通的变量自加。I的作用:他的作用域是在main内,我想应该是main内的全局吧(我自己想的...)

慕丝7291255

for语句的作用域是大括号内,如果没有大括号那就是第一条语句,也就是说见分号就停,至于这个程序也是对的,因为只要定义了 i 就能用,但结果不一样,即使结果一样也是凑巧
随时随地看视频慕课网APP
我要回答