C语言中的运算符一、运算符 1、 算术运算符:+ - * / %
2、 赋值运算符:赋值运算符用“=”来给变量赋值。注意,在C语言中“=”不表示相等,而只是一个运算符。
3、 增量和减量运算符:
在程序开发中,我们经常需要对一个变量的值执行加1或者减1的操作。例如:
x = x + 1; x = x – 1; |
根据运算符与操作数在表达式中的位置关系,分为前缀形式和后缀形式两种用法。
(1)前缀形式(大于任何运算符)
当运算符出现在它作用的变量的前面,称为前缀形式,表示变量在使用前自动加1或减1。其语法形式为:
+ +变量 - -变量 |
当运算符出现在它作用的变量的后面时,称为后缀形式,表示变量在使用后自动加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
7、数据类型强制转换运算符 (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)取址运算符&