什么“? 在C ++中做?
int qempty() { return (f == r ? 1 : 0); }
在上面的片段中,“ ? ”是什么意思? 我们可以用什么replace它?
这通常被称为条件运算符 ,当使用像这样:
condition ? result_if_true : result_if_false
…如果condition
评估为true
,则expression式评估为result_if_true
,否则评估为result_if_false
。
它是语法糖 ,在这种情况下,它可以被replace
int qempty() { if(f == r) { return 1; } else { return 0; } }
注意:有些人把?:
称为“ 三元运算符 ”,因为它是唯一使用它们的语言的三元运算符(即运算符有三个参数)。
这是一个三元运算符,它基本上是一个内联if语句
x ? y : z
作品像
if(x) y else z
除了你有expression式的陈述, 所以你可以在更复杂的语句中使用它。
这对于编写简洁的代码很有用,但可以被过度使用来创build难以维护的代码。
它被称为条件运算符 。
您可以将其replace为:
int qempty(){ if (f == r) return 1; else return 0; }
您可以将其重写为:
int qempty(){ return(f==r);}
与其他答案中所说的一样。
这是条件操作符。
一个 ? b:c
这是IF / THEN / ELSE的捷径。
意思是:如果a是真的,则返回b,否则返回c。 在这种情况下,如果f == r,则返回1,否则返回0。
问号是条件运算符。 代码意味着如果f == r则返回1,否则返回0.代码可以被重写为
int qempty() { if(f==r) return 1; else return 0; }
这可能不是最干净的方式,但希望能帮助你理解。
只是一个说明,如果你看到这个:
a = x ? : y;
这是标准的GNU扩展(请参阅https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals )。
这是一样的
a = x ? x : y;