【发布时间】:2014-09-12 07:26:07
【问题描述】:
我们有以下 C++ 代码
#include <iostream>
int main()
{
int A = 128;
char B = A;
A = B;
std::cout << "B:= " << B << std::endl;
std::cout << "A:= " << A << std::endl;
return 0;
}
谁能解释一下,为什么我们得到 -128 的结果?
【问题讨论】:
-
coz char overflow see ref 有符号的 char 可能有 -128 到 127 的限制
-
unsigned char会发生什么? -
char在您的情况下显然已签名(不一定如此)-因此为 128 -> 0x80 -> -128。 -
@PaulR +1 显示转化。
标签: c++ char int implicit-conversion