分析下面的代码,求运行结果。
#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。