c语言中,-x实现是用取反+1实现,因此x>0||-x<=0不一定都成立,比如x=0x80000000,即x除了符号位是1,其余都是零,10进制值为
#include<iostream> int main() { int x=0x80000000; printf("x=%d/n",x); if(x>0||-x>=0) printf("x>0||-x>=0"); else printf("x<0&&-x<0"); return 0; }
运行结果为:
x=-2147483648
x<0&&-x<0