我在课堂上得到了这个例子,我不确定它的作用。我理解冒号添加了一个位字段,但我仍然不确定这个问题:
a = b > 0 ? 3:1;
答案 0 :(得分:3)
?:
运算符称为条件运算符。
如果b
值为> 0
,则值3
会分配给a
,否则值1
会分配给a
。< / p>
带上你的Kernighan&amp; Ritchie book第2版,第2.11章条件表达式,解释了算子的行为。
答案 1 :(得分:2)
答案 2 :(得分:2)
?
是条件运算符:
a = b > 0 ? 3:1;
相当于:
if(b > 0)
a = 3;
else
a = 1;
答案 3 :(得分:1)
它是条件运算符(通常称为三元运算符),用作编写if语句的简短方法。
一般情况下,可以阅读:
condition ? value_if_true : value_if_false
所以,在你的情况下:
a = b > 0 ? 3:1;
可以改写为:
if(b > 0) a = 3;
else a = 1;
此示例中的冒号并不意味着与位字段相关的任何内容 - 它只是条件的第二部分。