在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换。
unsigned int a=0; //此时打印出unsigned
// int a=0; //此时打印出signed
if(a<a-1)
printf("\n unsigned");
else
printf("\n signed");
分析:如果a为无符号数:那么0<-1的比较,-1会被转化成无符号数(一个很大的数),即比较成立,打印出unsigned。
如果a是有符号数:那0<-1不成立,打印出signed。