整数溢出int和char

时间:2018-05-12 10:11:21

标签: integer overflow

我有两个例子:

unsigned long l = ULONG_MAX; 
char c = -1; 
if (c == l)
    std::cout << "-1 = 4,294,967,295?";

输出:“ - 1 = 4,294,967,295?”

unsigned char l = 255; 
char c = -1; 
if (c == l)
    std::cout << "-1 = 4,294,967,295?"; 

输出:

为什么第一个例子生成输出但第二个不生成输出?

1 个答案:

答案 0 :(得分:0)

C编译器转换示例: 在第一种情况下: IF

在第二种情况下 if ((unsigned long)c == l)