c中为什么size_t可以赋值-1呢,unsigned却不可以
答案:1 悬赏:60 手机版
解决时间 2021-02-06 15:25
- 提问者网友:箛茗
- 2021-02-05 21:44
c中为什么size_t可以赋值-1呢,unsigned却不可以
最佳答案
- 五星知识达人网友:鱼芗
- 2021-02-05 23:07
typedef unsigned size_t
两个都可以赋值 -1, 但赋值后的结果可能因编译器不同而不同,但都会自动转换为无符号的正数
VC中 size_t 赋初值为-1时 实际上是=4294967295的无符号整数
如果你用%d输出,那么自然是-1
int main()
{
size_t a = -1;
if(a<0)
{
printf("a = %d <0 \n",a);
printf("a = %u <0 \n",a);
}else{
printf("a = %d >0 \n",a);
printf("a = %u >0 \n",a);
}
return 0;
}
两个都可以赋值 -1, 但赋值后的结果可能因编译器不同而不同,但都会自动转换为无符号的正数
VC中 size_t 赋初值为-1时 实际上是=4294967295的无符号整数
如果你用%d输出,那么自然是-1
int main()
{
size_t a = -1;
if(a<0)
{
printf("a = %d <0 \n",a);
printf("a = %u <0 \n",a);
}else{
printf("a = %d >0 \n",a);
printf("a = %u >0 \n",a);
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯