为什么char不超过一个字节时没有溢出?

时间:2014-05-07 19:36:00

标签: c++

如果char只有1个字节(8位,最大255个),那么如何在char中保存65534个char?

#include <iostream>

int main() {
    unsigned wchar_t a = 65534;
    char b = (char)a;
    std::cout << b << std::endl;
    return 0;
}

也可以在java中编写byte b = 5000; 有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

对于C ++代码,wchar_t值被截断以适合char变量。通常编译器会发出关于这种数据丢失的警告,但是通过使用C风格的演员,你告诉编译器“不要担心,我知道我在做什么”,并对后果负责。你的(可疑的)行动。