标签: c implicit-conversion unsigned
有人可以向我解释如何
printf("%d", -2<2u?1:-1);
打印出'-1'。我假设有某种隐式转换正在进行,但我似乎无法掌握它。
答案 0 :(得分:5)
-2正在转换为unsigned integer。这等于UINT_MAX - 1,绝对大于2。因此,条件失败并打印-1。
-2
unsigned integer
UINT_MAX - 1
2
-1