C语言运算符中问号是什么意思

如题所述

问号是条件运算符的意思,跟冒号组合使用。条件运算符优先级高于赋值、逗号运算符,低于其他运算符。

表达式为:表达式1?表达式2:表达式3。先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。


扩展资料

条件运算符具有右结合性

当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。如果在问号和冒号之间还有一个问号或者冒号,应该满足就近配对,使结构不发生紊乱。

例如:

w<x ? x+w : x<y ? x : y与 w<x ? x+w : ( x<y ? x : y) 等价。

w<x ? x+w : x<y ? x : y与 (w<x ? x+w : x<y) ? x : y 不等价。

参考资料来源:百度百科-条件运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-19

C语言运算符中问号是条件运算符(与冒号组合)。该运算符是C语言中唯一一个三目运算符。


可以通过如下的实例来说明条件运算符的用法:

int a=1, b=3;
int max;
max = a>b ? a : b;   // 如果a>b,则max的值为a,否则max的值为b,也即取a与b中的较大者

第2个回答  2011-12-24
z=x<y?x:y是条件运算符
意思是
如果x<y那么结果z就是x的值,如果x>=y结果z就是y的值
跟下面的if语句等价
if(x>y)z=x;
else z=y;
第3个回答  2011-12-24
条件运算符
第4个回答  2011-12-24
呃,俺学艺不精,不知道你说的是哪个,是不是(?:)呢?
?:是三目运算符
如:a?b:c;
等价于:
if(a) b;
else c;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网