先看下面这段代码:
#include <stdio.h>
void main()
{
unsigned int a=6;
int b=-20;
if((a+b)>6)
printf(">6");
else
printf("<=6");
}
乍看认为结果是<=6,其实是>6,这是因为a+b做了隐式的转换,把int转换为unsigned int. 编译器就会把b当做一个很大的正数!!!
先看下面这段代码:
#include <stdio.h>
void main()
{
unsigned int a=6;
int b=-20;
if((a+b)>6)
printf(">6");
else
printf("<=6");
}