int qempty()
{
return (f == r ? 1 : 0);
}
在上面的代码片段中,“?”是什么意思?意思是?我们可以用什么来代替它?
int qempty()
{
return (f == r ? 1 : 0);
}
在上面的代码片段中,“?”是什么意思?意思是?我们可以用什么来代替它?
这通常被称为条件运算符,当这样使用时:
condition ? result_if_true : result_if_false
...如果condition
计算结果为true
,则表达式计算结果为result_if_true
,否则计算结果为result_if_false
。
它是语法糖,在这种情况下,它可以替换为
int qempty()
{
if(f == r)
{
return 1;
}
else
{
return 0;
}
}
注意:有些人将?:
其称为“三元运算符”,因为它是他们使用的语言中唯一的三元运算符(即接受三个参数的运算符)。
这是一个三元运算符,它基本上是一个内联 if 语句
x ? y : z
像
if(x) y else z
除了,你有表达式而不是语句;所以你可以在更复杂的语句中间使用它。
它对于编写简洁的代码很有用,但可能被过度使用以创建难以维护的代码。
只是一个注释,如果你看到这个:
a = x ? : y;
这是标准的 GNU 扩展(参见https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals)。
它与
a = x ? x : y;
您可以将其重写为:
int qempty(){ return(f==r);}
这与其他答案中所说的相同。
它是条件运算符。
一种 ?乙:丙
这是 IF/THEN/ELSE 的快捷方式。
意思是:如果a为真,返回b,否则返回c。在这种情况下,如果 f==r,则返回 1,否则返回 0。
问号是条件运算符。代码表示如果 f==r 则返回 1,否则返回 0。代码可以重写为
int qempty()
{
if(f==r)
return 1;
else
return 0;
}
这可能不是最干净的方法,但希望能帮助您理解。
它读作:
If f == r then return 1 else return 0