C++ 整数溢出是否影响其他变量?

C++ 整数溢出是否影响其他变量?,c++,integer-overflow,C++,Integer Overflow,因为十进制中的255在二进制中是1111111,十进制中的255+1在二进制中是10000 0000。所以我认为char[0]会因为溢出而受到char[1]的影响,但结果是: 1 0 溢出是否会影响其他变量?如果无符号整数类型(如无符号字符)溢出,则结果将被截断为该数据类型提供的位,实际上它是根据模极大值XXX+1定义的,XXX是相应的数据类型。因此溢出对象前后对变量/内存没有影响;255+1等于256,256被截断为低有效8位,则为0 请注意,有符号整数类型上的溢出行为完全不同,即它是未定义

因为十进制中的255在二进制中是1111111,十进制中的255+1在二进制中是10000 0000。所以我认为char[0]会因为溢出而受到char[1]的影响,但结果是:

1
0

溢出是否会影响其他变量?

如果无符号整数类型(如无符号字符)溢出,则结果将被截断为该数据类型提供的位,实际上它是根据模极大值XXX+1定义的,XXX是相应的数据类型。因此溢出对象前后对变量/内存没有影响;255+1等于256,256被截断为低有效8位,则为0


请注意,有符号整数类型上的溢出行为完全不同,即它是未定义的行为

这不是有效的C++……当创建一个应该构建的,确保它确实是。你是如何得到这个来打印任何东西的?至于您的问题,没有。无符号整数溢出只会包装溢出的值,其他情况不会发生。如果您将数组视为单个无符号短值,那么它当然会像您期望的那样取决于。您确定这段代码可以编译吗???严格来说,该标准表示,这意味着无符号算术不会溢出,因为无法由结果无符号整数类型表示的结果将被减少为比结果无符号整数类型可以表示的最大值大一的数的模。3.9.2,注47,
1
0
0
0