【发布时间】:2017-05-21 13:48:22
【问题描述】:
int main()
{
if (sizeof(int) > -1 )
printf("True");
else
printf("False");
return 0 ;
}
我预计程序会产生“真”,但执行后会产生“假”。谁能解释一下为什么会这样?
【问题讨论】:
-
你发现
sizeofoperator 产生了什么?哪种类型?并正确格式化这个烂摊子。阅读How to Ask。现代编译器应该警告这种比较。如果没有,请启用所有推荐的警告(至少-Wall -Wextra -Wconversion)。并始终在询问之前解决警告的原因。 -
在 C 中,if 语句内的 sizeof 运算符的工作方式与 if 语句外的工作方式完全相同。
标签: c