c语言的入门函数 c语言函数使用方法( 五 )


两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同 。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推 。
如求表达a+=a-=a*a 的值,其中a的初值为12。
步骤:
?10逗号运算符和逗号表达式
在c语言中,逗号除了作为分隔符,还可以用作一种运算符----逗号运算符,用逗号运算符将几个表达式连接起来,例如a=b+c,a=b*c等称为逗号表达式 。
一般形式为:
表达式1  , 表达式2  , 表达式3,…,表达式n
例:x=2,y=3,z=4
逗号表达式具有从左至右的结合性,即先求解表达式1,然后依次求解表达式2,直到表达式n的值 。表达式n的值就是整个逗号表达式的值 。上述的逗号表达式的值就是表达式z=4的值4.需要注意的是,逗号运算符是所有运算符中级别最低的 。
例:有如下程序段:
程序显示结果为:y=6,x=6
讨论:将y=(x=a+b),(b+c);改为y=((x=a+b),b+c) 的程序结果?
? 11 关系运算符和关系表达式
一、C语言中的逻辑值
C语言中的逻辑值只有两个:真(true)和假(flase) 。用非零代表真,用零代表假 。因此,对于任意一个表达式,如果它的值为零,就代表一个假值,如果它的值为非零,就代表一个真值 。只要值不是零,不管是正数,负数,整数,实数 , 都代表一个真值 。例如-5的逻辑值为真 。
二、关系运算符及其优先次序
C语言提供了6种关系运算符 , 见表
由两个字符组成的运算符之间不可以加空格,关系运算符都是双目运算符 。
(1)结合性:自左向右 。
(2)优先次序:前4种关系运算符(,=,= ,  )的优先级别相同,后两种 (==,!=)优先级相同,且前4种优先级高于后两种;关系运算符的优先级低于算术运算符,高于赋值运算符 。
三、关系表达式
由关系运算符连接而成的表达式称为关系表达式 。
例如:ab,(a=7)(b=10)等都是合法的关系表达式 。
关系表达式的结果有两个:0和1, 。其中0表示假,1表示真 。如果关系表达式成立,则值为真,如果关系表达式不成立,则值为假 。
例:变量a的值为5 , b的值为6,那么关系表达式ab的值为假,即为0.而关系表达式
(a=13)(b=10)的值为真,即为1 。
当关系运算符两边值的类型不一致时,若一边是整型,一边是实型,系统将自动把整型数转化为实型数,然后再进行比较 。
?12 逻辑运算符和逻辑表达式
一、逻辑运算符及其优先级
C语言提供了3种逻辑运算符 , 如下表 。
二、逻辑表达式
“”和“||”的运算对象有两个,故它们都是双目运算符,而!的运算对象只有一个,因此它是单目运算符 。逻辑运算举例如下:
(1)ab: 当两边都为“真”时,表达式ab的值才是真 。
值得注意的是:在数学中,关系式0
(2)a||b: 当||两边有一个为“真”时 , 表达式a||b的值就是真 。
(3)!a:表示取反,如果a为真,则!A为假,反之亦然 。例如!-5的值就为0.
在C语言中,由或||组成的逻辑表达式,在某些特定情况下会产生“短路“现象 。
(1)xyz ,只有当x为真(非0)时,才需要判别y的值;只有x和y都为真时,才需要去判别z的值;只要x为假就不必判别y和z,整个表达式的值为0 。口诀:“一假必假” 。
例:(!5==1)(++i==0)(!5==1)表达式的值为0,所以计算机运行中就跳过(++i==0)此表达式,(!5==1)(++i==0)表达式的值为0.

推荐阅读