你可以证明以下代码:
#include<stdio.h>
int main()
{
if(sizeof(int) > -1)
{
printf("\nTrue\n");
}
else
{
printf("\nFALSE\n");
}
}
Run Code Online (Sandbox Code Playgroud)
输出是FALSE.....建议我的原因
sizeof(int)具有type size_t,这是一个无符号整数类型.
-1具有类型int,它是有符号整数类型.
将有符号整数与无符号整数进行比较时,首先将有符号整数转换为无符号整数,然后使用两个无符号整数执行比较.
sizeof(int) > (unsigned int)-1是错误的,因为(unsigned int)-1在大多数实现中都是一个非常大的数字(等于UINT_MAX,或者适合的最大数字unsigned int).
| 归档时间: |
|
| 查看次数: |
728 次 |
| 最近记录: |