?:判断问题。。。//为什么返回1 ?
unsigned int val = 20;
int test = val - 40 > 0 ?1:0;
[解决办法]
当比较判断存在无符号和有符号类型的时候,有符号的会自动转换成无符号的!
[解决办法]
1. unsigned int 减去 int,先会把int提升为unsigned int,得到结果是 unsigned int
这个说法不准确,实际测试,unsigned和非unsigned数减比它大的数都是负数,只是放在 ? :运算中会进行这样转换