黑马程序员技术交流社区
标题:
关于fo语句中作用域问题
[打印本页]
作者:
dormitory219
时间:
2015-1-9 19:53
标题:
关于fo语句中作用域问题
刚才看c视频看到for语句,用vc 6.0++ 敲下列代码:for( int e=0;e<3;e++) int t=12; printf("e=%d\n",e);运行结果是e=3;在这个e不是只能在for语句中生效么,怎么编译不报错呢??难道是用了c++编译器的原因么??
作者:
macau
时间:
2015-1-9 20:04
在for 循环中进行行循环,最后一次循环后e的值自加后变为3,最后你让printf打印出e的值,这时内存中记忆e的值正是3,在正常没有语法错误情况下,编译器是不会报错的
作者:
dormitory219
时间:
2015-1-9 20:09
macau 发表于 2015-1-9 20:04
在for 循环中进行行循环,最后一次循环后e的值自加后变为3,最后你让printf打印出e的值,这时内存中记忆e的 ...
你再看一下,我这个e是在for中定义的,我刚才看了视频,在xcode环境下最后printf的e是未被定义的
作者:
Xwoder
时间:
2015-1-10 14:54
你把变量的声明放在for循环头部,那这个变量到for循环的最后一个括号就不能访问了,在其之后访问肯定有问题的
作者:
paldvel
时间:
2015-1-10 15:07
VC6.0++都什么年代的了,上个世纪的了,还是C89标准。
如果在WIN下编写C,推荐VS2010及以上,或者code::blocks,都支持C99,Xcode早就支持C11了。
for( int e=0;e<3;e++)
int t=12;
printf("e=%d\n",e);
复制代码
上面的代码在Xcode会报2个错,一个是int t没有被大括号括起来;一个是printf()里用到了未声明的变量e。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2