C 中 unsigned int 的大小是 0 到 65,535 或 0 到 4,294,967,295
。
我在 C 中使用以下代码进行了测试:
unsigned int number = 0;
number -= 300;
printf("%d\n", number);
输出:-300
我记得如果 unsigned int
变量的值低于 0,它应该回绕,我期望输出类似于 4294966996
。然而,从控制台打印的输出是 -300
。
我在 C++ 中测试了类似的语句,它确实给了我 4294966996
。
我的问题是:为什么输出 -300
尽管它是一个 unsigned int
?
PS:我浏览了几篇标题相似的帖子,但他们没有解决同一个问题:
最佳答案
因为 printf("%d\n", number);
会打印一个带符号的值,即使参数是无符号的。使用 printf("%u\n", number);
来正确打印无符号值。
关于c - C 中 unsigned int 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27055983/