vlambda博客
学习文章列表

(运算符)乐创DIY C语言讲义​——3.7节(3)

5.    杂项运算符

                           

图3-7-14 杂项运算符


条件表达式,又称三目运算符,有时候也称为“三元运算符“。它是C/C++,Java等语言中的重要组成部分,它是唯一有3个操作数的运算符。条件表达式的原型为:”<表达式1> ? <表达式2> : <表达式3>; “。"?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。如图3-7-15中的代码所示,在图3-7-15中,首先定义了两个变量cond_1,cond_2,分别给cond_1赋值一个零,给cond_2赋值一个非零值,最终通过条件表达式去获取当前条件的值,如果为1,就打印出这个值是真的(非零),如果为0,就打印出这个值是假的(零)。


(运算符)乐创DIY C语言讲义​——3.7节(3)


图3-7-15 条件表达式


条件表达式有点类似于后面我们要学习的条件语句a ? b : c简单理解方式为:


其实,条件表达式和赋值运算结合在一起,还有一个非常方便的用法,比如要判断一个数值是否大于100,就输出为1,小于100就输出0,那用到条件表达式可以一句语句就实现这种功能,如图3-7-16所示。


(运算符)乐创DIY C语言讲义​——3.7节(3)


图3-7-16条件表达式判断数值大小

 

6.    赋值代码简化

赋值运算符和前面的一些运算符结合到一起可以起到简化代码的功能。如图3-7-17所示。


(运算符)乐创DIY C语言讲义​——3.7节(3)


图3-7-17 赋值运算代码简化

 

7.    运算符的优先级

运算符和变量构成了C语言中一句句的运算语句,又称为表达式,一个表达式中有时有多个多种类型的表达式,由于表达式有多种运算,因此不同的计算顺序可能会得出不同的结果,甚至出现运算错误。必须按照一定的运算顺序进行运算,才能保证运算的合理性和结果的正确性,唯一性。

每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。C语言中的运算符优先级如图3-7-18所示。现在我们先不要去背出这个优先级表,在我们写代码的时候,还是先显式地用括号指明其优先级。


图3-7-18 C语言中运算符优先级