这段C代码的输出结果是"False",并且执行了else
块。
sizeof(int)
的值为4,但是sizeof(int) > -1
的值为0。
我不明白发生了什么。
#include <stdio.h>
void main()
{
if (sizeof(int) > -1 )
{
printf("True");
}
else
{
printf("False");
}
printf("\n%d", (sizeof(int)) ); //output: 4
printf("\n%d", (sizeof(int) > -1) ); //output: 0
}
sizeof (int) > -1
converts-1
to unsigned and is the same assizeof (int) > 4294967295
- pmgvoid main()
不是错误的。否则我必须写额外的一行return 0
。 - Deepak Gautamreturn 0
*也是错误的。在C99中,如果您没有编写返回语句,**会隐式添加一个return 0
**。请参见为什么main()不需要返回语句?(重复)。 - phuclv