char类型边界处增量运算符的行为

Mom*_*ain 2 c++ increment char

我想知道在这种情况下C++的行为如何:

char variable = 127;
variable++;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,变量现在等于-128.但是,增量运算符是将值包装到其下限还是发生了溢出?

提前致谢!

Luc*_*ore 6

发生溢出并导致未定义的行为.

第5.5节:

如果在评估表达式时,结果不是数学定义的,或者在其类型的可表示值范围内,则行为未定义[...]

该标准继续指出,在大多数实现中,整数溢出被忽略.但这并不代表保证.