#include
int main(int argc, char const *argv[])
{
unsigned int i = 5;
int j = -10;
if((i + j)>0)
{
printf("i + j > 0\n");
}
else
printf("i + j < 0\n");
return 0;
}
结果是啥不会自己跑一把??? 就是个类型隐式转换的问题。
你这个是发生了类型转换,因为i为无符号整型,所以如果不改成这样的话——if((int) (i + j)>0),i+j的最终结果也会转换为unsigned类型,这样就恒大于0,所以就导致输出错误结果