int qempty()
{
return (f == r ? 1 : 0);
}
在以上代码段中,“ ? ”是什么意思?我们可以用什么代替它?
int qempty()
{
return (f == r ? 1 : 0);
}
在以上代码段中,“ ? ”是什么意思?我们可以用什么代替它?
Answers:
这是一个三元运算符,基本上是一个内联的if语句
x ? y : z
像
if(x) y else z
除了声明以外,您还有表达式;因此您可以在更复杂的语句中间使用它。
它对于编写简洁的代码很有用,但可能会被过度使用以创建难以维护的代码。
a = x ? y : z;
您不能说int a = if(x) y else z;
请注意,如果您看到以下内容:
a = x ? : y;
它是标准的GNU扩展(请参阅https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals)。
与...相同
a = x ? x : y;
x = 1+1 ? : 0
; 2
在我的编译器中正确返回 ,这没有任何抱怨。