顶一下,不错不错....
挺不错额的
真的挺不错的。。。
楼主辛苦了。
很好谢谢我会用心的
归纳的挺详细的,不错
根据您的陷阱3中提到的
如果是for循环,跟if一样,事与愿违,循环做无用功,本想循环的printf语句只执行一次。for(int a=1;a<10;a++);printf("%d",a);程序只输出一次a值。
我特地试了一下#include <stdio.h>
void main(){
for(int a = 1; a < 10; a++);
printf("%d\n", a);
}输出结果是10
我想问的是,int a = 1;
定义变量是在for内,为什么能被for外识别?
这是C的不同吗?
因为我之前学JAVA的,求指路
楼主,
关于我说的陷阱3
如果是for循环,跟if一样,事与愿违,循环做无用功,本想循环的printf语句只执行一次。for(int a=1;a<10;a++);printf("%d",a);程序只输出一次a值。
我上百度问人了
别人说的答案是要看标准,标准不一样,情况不一样,以下是百度收集的答案
http://zhidao.baidu.com/question/587907634.html?sort=6#answer-1472054668
我的代码片段#include <stdio.h>
void main(){
for(int a = 1; a < 10; a++);
printf("%d\n", a);
}NO.1
一种语言的编译器只要能支持90%这种语言就不错了,虽然在正常的for(int i)这种定义,只在for内有效,但是,在不同的编译器中是不一样的,
如果你用的是VC6.0就可以通过,如果是VS2008以上版本的编译器就会报错,
这是VC6.0编译器进行优化了的原因,使得a的作用域大于for循环域
NO.2
这段代码根据C89标准是不可以编译的
根据C99或者C++标准是可以编译的
可以编译的情况下 变量a数据main的局部变量
而不是for内的局部变量
对于for语句,写在for循环体内的才是for的局部变量
for(;;)
{
int loc;
}
这里的loc才是局部变量
这个loc在for之外是不可以被引用的
好帖,我这些错误基本都犯过
顶起来
支持支持加油谢谢
很好,很不错,学习了
:handshake很实用啊,确实有些碰到过
好东西收下了谢谢
好东西收下了谢谢
激动人心,无法言表!
懒家大少 发表于 2013-9-2 10:21 static/image/common/back.gif
楼主,
关于我说的陷阱3
如果是for循环,跟if一样,事与愿违,循环做无用功,本想循环的printf语句只执行 ...
建议看看《C语言参考手册》这一本书噶,里面对C99和C89有详细的说明。。还有规范很重要,C语言里重来没有void main()这样的东西噶~:sweat:
细节决定成败!不错
确实是容易犯的错误,以后要更小心
好帖,{:5_109:}{:5_109:}