【发布时间】:2016-11-12 19:08:58
【问题描述】:
if(sizeof(int)>-1)
{
printf("0");
}
else
{
printf("else");
}
它执行 else 语句。 为什么即使 int size>-1 也不跟随 if 部分。
【问题讨论】:
标签: c if-statement sizeof
if(sizeof(int)>-1)
{
printf("0");
}
else
{
printf("else");
}
它执行 else 语句。 为什么即使 int size>-1 也不跟随 if 部分。
【问题讨论】:
标签: c if-statement sizeof
sizoe(int) 产生一个size_t 类型的整数,它是无符号整数。由于 C 中的 usual arithmetic conversions,-1 被转换为 size_t,因此,-1 变为 SIZE_MAX。显然sizeof(int) 小于SIZE_MAX 并且条件(if)为假。
【讨论】: