C中unsigned int的大小是0 to 65,535 or 0 to 4,294,967,295.
我用C中的以下代码进行了测试:
unsigned int number = 0;
number -= 300;
printf("%d\n", number);
Run Code Online (Sandbox Code Playgroud)
输出:-300
我记得如果unsigned int变量的值低于0,它应该环绕并且我期待输出类似于4294966996.但是从控制台打印的输出是-300.
我在C++中测试了类似的语句,它确实给了我4294966996.
我的问题是:为什么输出-300尽管它是一个unsigned int?
PS:我查看了几个标题相似的帖子,但他们没有解决同样的问题: