【发布时间】:2013-10-27 03:12:17
【问题描述】:
int main()
{
unsigned int a=6;
int b=-20;
(a+b)>6?puts(">6"):puts("<=6");
}
我很清楚 三元运算符 在这段代码中是如何工作的。我无法理解这里添加了 signed 和 unsigned integer。
尝试运行代码,输出为“>6”,为什么?
【问题讨论】:
-
了解三元运算符:en.wikipedia.org/wiki/%3F:#C
-
@georgesl 我认为整个“挑战”是关于知道在
unsigned int a和int b之间添加a + b是什么类型。 (坦率地说,我并不在意,因为我的编码标准禁止在未将所有内容转换为明确的相同类型的情况下执行算术运算。) -
@DanielDaranas:很有可能。但是 OP 会很好地在问题中说明这一点;)
-
我不是对三元运算符感到困惑,而是对有符号和无符号整数的加法感到困惑
标签: c