我有两个例子:
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?";
输出:
为什么第一个例子生成输出但第二个不生成输出?
答案 0 :(得分:0)
C编译器转换示例:
在第一种情况下:
IF
在第二种情况下
if ((unsigned long)c == l)