【发布时间】:2018-12-22 22:54:55
【问题描述】:
我认为 unsigned int 只能存储 >= 0 的整数。 但是我尝试将负数分配给无符号整数,没有发生任何特别的事情。 它似乎没有问题地存储了值。
那么signed int和unsigned int有什么区别,如果它无论如何都可以存储任何值,那又有什么意义呢?
【问题讨论】:
-
提示:默认情况下,大多数 C 编译器都非常谨慎地提供未经请求的警告。让它说出来,你会感到震惊。
-
“存储的值没有问题”:有有问题。
-
试试这个:
int main(){ unsigned int a = -1; if( 2U < a ){ printf("2 < '-1'\n"); }} -
如果您提供声称显示无符号整数存储负数的代码,我们将向您指出它依赖于未定义行为的地方,否则根本不会显示您声称的内容.