结肠在c中做了什么?

时间:2012-03-16 03:32:00

标签: c

我在课堂上得到了这个例子,我不确定它的作用。我理解冒号添加了一个位字段,但我仍然不确定这个问题:

    a = b > 0 ? 3:1;

4 个答案:

答案 0 :(得分:3)

?:运算符称为条件运算符。

如果b值为> 0,则值3会分配给a,否则值1会分配给a。< / p>

带上你的Kernighan&amp; Ritchie book第2版,第2.11章条件表达式,解释了算子的行为。

答案 1 :(得分:2)

这是conditional operator。它相当于:

if (b > 0)
    a = 3;
else
    a = 1;

将其读作“a =如果b> 0然后3则其他1”。

答案 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;

此示例中的冒号并不意味着与位字段相关的任何内容 - 它只是条件的第二部分。