为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
忽然笑 2023-04-20 19:15:09
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后面大括号之间。

查看完整回答
反对 回复 2023-04-23
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

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

查看完整回答
反对 回复 2023-04-23
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

for语句的作用域是大括号内,如果没有大括号那就是第一条语句,也就是说见分号就停,
至于这个程序也是对的,因为只要定义了 i 就能用,但结果不一样,即使结果一样也是凑巧

查看完整回答
反对 回复 2023-04-23
  • 3 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信