<分区>
#include<stdio.h>
void main()
{
int a=2;
if ((sizeof(a))>-1)
printf("a");
else
printf("b");
}
为什么程序输出为b
当sizeof(a) = 4时,大于(-1)
标签 c
<分区>
#include<stdio.h>
void main()
{
int a=2;
if ((sizeof(a))>-1)
printf("a");
else
printf("b");
}
为什么程序输出为b
当sizeof(a) = 4时,大于(-1)
最佳答案
sizeof
返回 size_t
(这是实现定义的无符号整数类型)。
所以 -1
也被转换为 unsigned。假设 two's complement负整数的表示,(unsigned)-1
大于 (unsigned)4
,因此输出为 b
。
关于c - C的sizeof()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977591/