为什么sizeof(int)不大于-1?
这是我的C代码:为什么输出“False”?????
为什么4> -1 ???
代码:
#include int main() { if (sizeof(int) > -1) printf("True"); else printf("False"); return 0; }
因为sizeof(int)是无符号的。 因此-1转换为大的无符号值。
因为sizeof
产生类型size_t
的值,这是一个无符号类型。 在>
表达式中,通常的算术转换会将-1
转换为无符号类型,这是>
结果的类型。 由此产生的价值将是巨大的正值。
要获得预期的行为,请使用:
(int) sizeof (int) > -1