use*_*245 6 c syntax ternary-operator
可能重复:
如何使用条件运算符?
我是C语言的新手,在我正在审查的一个示例代码中,我遇到了以下声明:
A = A ? B: C[0]
Run Code Online (Sandbox Code Playgroud)
我只是想知道前一个语句的任务是什么,以及执行上述语句后的结果是什么.
mar*_*cog 13
它被称为三元运算符.expr ? a : b
返回a
if如果expr
为true,b
如果为false.expr
可以是布尔表达式(例如x > 3
),布尔文字/变量或任何可转换为布尔值的东西(例如int).
int ret = expr ? a : b
相当于以下内容:
int ret;
if (expr) ret = a;
else ret = b;
Run Code Online (Sandbox Code Playgroud)
关于三元运算符的好处是它是一个表达式,而上面是语句,你可以嵌套表达式而不是语句.所以你可以做的事情ret = (expr ? a : b) > 0;
作为额外的花絮,Python> = 2.6对于等效操作的语法略有不同:a if expr else b
.