【发布时间】:2020-05-25 14:40:39
【问题描述】:
C 中的条件运算符是这样使用的:
condition ? value_if_true : value_if_false
value_if_false中使用的0是什么意思?
例如,我见过一些人这样使用它。
a == b ? i++ : 0
好像什么都没做。这在其他功能中是否像 return 0 一样工作?
【问题讨论】:
-
那之前是什么?这可以是一个赋值,例如
int c = a == b ? i++ : 0表示如果为真,c 将为 i(然后 i 将增加),否则 c 将为 0。 -
你的正确。如果
a == b为真,则完整表达式的结果为i++,如果为假(即a != b),则结果为0。请注意,如果条件为假,i的增量将不会发生。 -
如果是完整的语句,那么
0可以替换成任何其他数字而不改变结果。 -
if (a == b) i++;是写这个的理智的方式,如果它被用作一个声明。甚至i += (a==b);如果有理由避免使用分支。 -
从技术角度来看,
?=被称为“条件运算符”。 条件运算符是一组三元运算符之一。