if(sizeof(int)>-1)
{
printf("0");
}
else
{
printf("else");
}
它执行else语句。 为什么它不遵循if部分,即使int size> -1。
答案 0 :(得分:2)
sizoe(int)
生成类型为size_t
的整数,它是无符号整数。由于C中为usual arithmetic conversions,-1
会转换为size_t
,因此-1
会变为SIZE_MAX。显然,sizeof(int)
小于SIZE_MAX
且条件(if
)为假。