void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts(">6") : puts("<=6");
}
结果是>6。 因为b会自动转换成无符号型,成一个很大的数。
自动转换
char, short ---->int------>unsigned—–>long—>double Float -----double
赋值转换
1.int —float/double 数值不变,以浮点数存储 2.Float/double —int 舍弃小数部分 3.char — int 有符号高位补1,无符号补0 4.Signed int – long 符号扩展,int为正则高位补0,反之补1 5.Unsigned —long 直接补0
转载请注明原文地址: https://ju.6miu.com/read-1279097.html