C语言中的运算符
一、运算符
1、 算术运算符:+ - * / %
2、 赋值运算符:赋值运算符用“=”来给变量赋值。注意,在C语言中“=”不表示相等,而只是一个运算符。
3、 增量和减量运算符:
在程序开发中,我们经常需要对一个变量的值执行加1或者减1的操作。例如:
x = x + 1; x = x – 1; |
为简化这种操作,C语言提供了增量运算符“++”和减量运算符“- -”。
根据运算符与操作数在表达式中的位置关系,分为前缀形式和后缀形式两种用法。
(1)前缀形式(大于任何运算符)
当运算符出现在它作用的变量的前面,称为前缀形式,表示变量在使用前自动加1或减1。其语法形式为:
+ +变量 - -变量 |
(2)后缀形式(小于任何运算符)
当运算符出现在它作用的变量的后面时,称为后缀形式,表示变量在使用后自动加1或减1。其语法形式为:
变量+ + 变量- - |
使用自增自减运算符时应注意:
++,- -运算只能作用于变量,不能用于表达式或常量。
例题1:int a = 6;
a=(++a)+(a++);
求输出的a的值。
分析:a、由于前缀形式大于任何运算符,所以优先计算++a,得出++a为7,此时的a也为7
b、再者,由1知a为7,所以a++为7(a++意思是先将a赋值,最后再自加)
c、根据1、2知最后结果为7+7+1
计算如图所示:
例题2:int a = 6;
a=a+(++a)+(- -a)-(a++)
求输出的a的值。
分析:a、由于前缀形式大于任何运算符,所以优先计算++a,得出++a为7,此时的a也为7
b、由于计算机太“笨”,要从左到右以此计算,所以算出a+(++a)的值为7+7=14
c、此时,在计算- -a的值,由1得a的值为7,所以- -a的值为6,a也为6,所以计算出a+(++a)+(--a)的值为14+6=20
d、最后一步有一个(a++)表示将第3步中a的值6,先赋值给a后,自身在加1,所以得出的结果是20-6+1=15
计算如图所示:
例题3:如图所示:
4、 关系运算符
= =等于 !=不等于 > 大于 < 小于 >= 大于等于 <= 小于等于
5、 逻辑运算符
&&逻辑与(一错全错)
|| 逻辑或(两个错才全错)
! 逻辑非
6、 条件运算符
一般形式为: 表达式1 ? 表达式2:表达式3
解释:若满足表达式1,则执行表达式2,否则执行表达式3
(1)自动类型转换
基本规则如下:
a、当出现在表达式里时,有符号和无符号的char和short类型都将自动被转换为int,在需要的情况下,将自动被转换为unsigned int。
b、在包含两种数据类型的任何运算里,两个值都将被转换成两种类型里较高的级别
c、类型级别从高到低的顺序是:double、float、long、int
d、在赋值语句里,计算的最后结果被转换成将要被赋予值的那个变量的类型。
e、当作为函数的参数被传递时,char和short会被转化为int,float会被转换为double。
(2)强制转换
强制类型转换运算符的使用形式为:
(type)表达式
8、特殊运算符
(1)长度运算符sizeof
(2)取址运算符&