对于int值,使用运算符“?:”的结果是什么

时间:2017-07-13 04:53:28

标签: c

你能告诉我下面代码中x的值是什么,并解释原因吗? 我以为x应该是8,但结果表明它是2 ...

int x=3;
x = 4? 2: 8;

2 个答案:

答案 0 :(得分:3)

它返回输出2,因为你的条件为真,因为你正在检查4,这在第二行代码中始终为真。如果你想把结果作为8:那么写代码如下:

int x=3;
x = x==4? 2: 8;

它将返回8,因为条件为false,因为x的值为3,而您正在检查它是否为4.

答案 1 :(得分:2)

这:?:是三元运算符。这是语法:(condition) ? (if_true) : (if_false)。这意味着,如果if_true为真,则此表达式将返回condition,否则将返回if_false

因此,在您的情况下,condition4,它始终为真(因为如果您在二进制中表示0,则并非所有位都为4,因此返回if_true部分。也请检查this