【发布时间】:2021-05-25 09:47:03
【问题描述】:
我了解 ++i 和 i++ 之间的区别。我觉得这个案子不一样,
我写了这段代码,
u_int8_t a = 255;
main (){
printf("Num is %d\n", ++a ) ;
}
哪些输出
Num is 0
但是这段代码,
u_int8_t a = 255;
main (){
printf("Num is %d\n", a+1 ) ;
}
哪些输出,
Num is 256
输出不同的原因是什么?
【问题讨论】:
-
1 被认为是一个 int。 int operator+ 隐式地将您的 u_int8_t 转换为 int,因此您得到的是 int 而不是 u_int8_t 的打印。请参阅上面的评论。
-
@Lundin 你已经“建议”了一个重复但没有关闭这个问题(你可能可以用你的 C 锤)。那是因为你不确定它是重复的吗?
-
@AdrianMole 这是因为我是提议的欺骗的作者,因此是部分的。我认为以自己的帖子为目标来结束问题是有问题的。
-
@Lundin OK - 公平评论。
-
@Lundin 它回答了我的问题,谢谢