【发布时间】:2015-07-10 18:07:52
【问题描述】:
在C int type中可以有以下+ve的取值范围2,147,483,647
来源:https://msdn.microsoft.com/en-IN/library/s3f49ktz.aspx
我想知道如果我分配的值大于 int 可以容纳的值会发生什么,如果我这样做了,这些值是如何截断的或者确切存储了什么
int var=2147483648;
【问题讨论】:
-
signed类型会导致整数溢出。 -
知道违反规则时会发生什么通常没什么用,除非规范说明会发生什么。大多数情况下,唯一的结果是“未定义的行为”(缩写为 UB)。 UB 在一个系统上的样子不一定是在另一个系统上的样子,甚至在参数发生某些变化(通常是不可预测的)时也一样。