分析下面的代码,求运行结果。
#include <stdio.h>int main(void)
{if(-2L > 2UL){printf("11111\r\n");}else{printf("22222\r\n");}return 0;
}
分析:
常量后面接L表示long型存储,UL表示unsigned long型存储;
无符号数与有符号数比较,编译器会把有符号数转换成无符号数,因此:
-2L = 0xFFFFFFFE;
2UL = 0x00000002;
所以if条件成立,打印11111。