?: 在 c语言中的意思

如题所述

?:是条件运算符;是三元运算符,也是C语言中唯一的一个三元运算符;
举例:max=(a>b)? a:b;它是这样执行的:如果(a>b)条件为真,则条件表达式取值a, 否则取b;
等价于:if(a>b) max=a;
else max=b;
注意:1:条件运算符优先于赋值运算符,所以要先算?:再算=;意思就是先求解条件表达式,再将它的值赋给max.括号可以不要,max=a>b?a:b;
2:结合方向自右向左;举例:max=a>b? a:c>d? c:d,就可以改写为a>b? a:(c>d? c:d)
等价于: if(a>b){
max=a;
}
else{ if(c>d)
max=c;
else max=d;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-18
语法规则: 表达式1?表达式2:表达式3;
意思是:如果表达式1成立,那么执行表达式2,否则执行表达式3.
举例子:int a =1;
int b = 2;
int c = a < b?a:b;
这个例子中将c的值设定为a和b中的较小者。如果a<b,那么c= a;如果a>=b,那么c=b;
第2个回答  2011-11-18
//这是C的条件运算符
a=2>3?1:2;
//相当于下列语句
if (2>3)
a=1;
else
a=2;

参考资料:a=1;

本回答被提问者采纳
第3个回答  2020-01-13
第4个回答  2011-11-18
复合语句等同于 if else
相似回答