比较C语言中有符号和无符号整数

时间:2018-08-30 01:00:25

标签: c sizeof

#include <stdio.h>
int main(void)
{
    if (sizeof(int) > -10)
        printf("YES\n");
   else 
        printf("NO\n");
   return 0;
}

为什么打印NO而不是YES?因为根据编译器,int的大小为4个字节,并且大于-10。

1 个答案:

答案 0 :(得分:2)

sizeof产生一个无符号值。比较有符号和无符号整数时,有符号值将转换为无符号。解释为无符号时,-10的两个补码值比4大。