如果声明? 并且:

我听说过哪种if语句使用? 并且:在C中
我不知道如何使用它,我无法找到任何关于它。 我需要使用它来缩短我的代码,任何帮助将不胜感激。

?:是C中的三元运算符 (也称为条件运算符)。 你可以缩短你的代码

 if(condition) expr1; else expr2; 

 condition ? expr1 : expr2; 

看看它怎么运作:

C11:6.5.15条件运算符:

第一个操作数被评估; 在其评估与第二或第三操作数的评估之间存在一个序列点(以评估者为准)。 仅当第一个操作数不等于0时才评估第二个操作数; 仅当第一个操作数比较等于0时才评估第三个操作数; 结果是第二个或第三个操作数的值(以评估者为准),

正如其他人所提到的,它被称为三元运算符。 但是,如果您不知道这一点,那么直接谷歌会有点困难,因为谷歌不能很好地处理标点符号。 幸运的是,StackOverflow自己的搜索处理引号中的标点符号就是这种情况。

此搜索将产生您正在寻找的答案。 或者,您可以在Google上搜索“c中的问号和冒号”,拼写出标点符号的名称。

首先你有条件吗?

然后你的表达式为TRUE吗? 并且:

然后你的表达式为FALSE:

像这样的东西:

 (1 != 0) ? doThisIfTrue : doThisIfFalse 

三元运算符?:是一个最小化的if语句,可以减少这个:

 if(foo) exprIfTrue(); else exprIfFalse(); 

对此:

 (foo) ? exprIfTrue() : exprIfFalse() ; 

就个人而言,我避免使用它,因为它很容易变得难以理解。 使用的唯一好例子是在printf显示标志的状态:

 int my_flag = 1; printf("My flag: %s\n", my_flag ? "TRUE" : "FALSE" );