条件运算符的C语言
2个回答
展开全部
表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(a>b)?a:b
就是将a和b二者中较大的一个赋给max。
2、min=(a<b)?a:b
就是将a和b二者中较小的一个赋给min。 条件运算符优先级高于赋值、逗号运算符,低于其他运算符
例如:
⑴ m<n ? x : a+3
等价于:(m<n) ?(x) :(a+3)
⑵ a++>=10 && b-->20 ? a : b
等价于:(a++>=10 && b-->20) ? a : b
⑶ x=3+a>5 ? 100 : 200
等价于:x= (( 3+a>5 ) ? 100 : 200 ) 条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
例如:
w<x ? x+w : x<y ? x : y
与 w<x ? x+w : ( x<y ? x : y) 等价
与 (w<x ? x+w : x<y) ? x : y 不等价
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询