【发布时间】:2013-12-14 19:08:40
【问题描述】:
我正在测试一些代码,发现了一件奇怪的事情:
#include<stdio.h>
void main()
{int m,n;
for(m=0, n=0; m<0,n<4; m++,n++)
printf("hello\n");
}
我的猜测是它不会打印,因为条件 m<0 不满足。但我对此感到震惊:
输出
hello
hello
hello
hello
谁能解释一下这个结果。为什么不评估 m<0 条件?
【问题讨论】:
-
谷歌“逗号运算符”。
,不是&&。 -
另外,
main()返回int。 -
@H2CO3 放 void 或 int 都没有关系。 试试看
-
@user689 C11 §5.1.2.2.1 p 1: "程序启动时调用的函数名为
main。实现声明该函数没有原型。应定义为返回类型为int[...]" -
@kninnug 很高兴知道这一点。我以错误的方式学习它。但是在像这样的简单程序中,使用 void(在 c 语言中)是合法的。