标签: c
#include<stdio.h> void main() { int a=2; if ((sizeof(a))>-1) printf("a"); else printf("b"); }
为什么程序将输出设为b
当sizeof(a)= 4时,大于(-1)
答案 0 :(得分:4)
sizeof返回size_t(实现定义的无符号整数类型)。
sizeof
size_t
因此-1也会转换为无符号。假设two's complement表示负整数,(unsigned)-1大于(unsigned)4,因此输出为b。
-1
(unsigned)-1
(unsigned)4
b