当前位置:  开发笔记 > 编程语言 > 正文

为什么(sizeof(int)> -1)为false?

如何解决《为什么(sizeof(int)>-1)为false?》经验,为你挑选了1个好方法。

你可以证明以下代码:

#include
int main()
{
    if(sizeof(int) > -1)
    {
            printf("\nTrue\n");
    }
    else
    {
            printf("\nFALSE\n");
    }
}

输出是FALSE.....建议我的原因



1> user253751..:

sizeof(int)具有type size_t,这是一个无符号整数类型.

-1具有类型int,它是有符号整数类型.

将有符号整数与无符号整数进行比较时,首先将有符号整数转换为无符号整数,然后使用两个无符号整数执行比较.

sizeof(int) > (unsigned int)-1是错误的,因为(unsigned int)-1在大多数实现中都是一个非常大的数字(等于UINT_MAX,或者适合的最大数字unsigned int).


*将有符号整数与无符号整数进行比较时,首先将有符号整数转换为无符号*仅当无符号整数类型的转换等级大于或等于有符号整数类型的转换等级时才会出现此情况.
推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有