C语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,例如将赋值符"="作为赋值运算符、方括号作为下标运算符等。
运算符有以下几类:
(1) 算术运算符
(十一*/%)
(2) 关系运算符
(> < >= <= !=)
(3) 逻辑运算符
(! && I I)
(4) 位运算符
(<< >> ~ I &)
(5) 赋值运算符
(=及其扩展赋值运算符)
(6) 条件运算符
(?:)
(7) 逗号运算符
(')
(8) 指针运算符
(*和&)
(9) 求字节数运算符
(sizeof)
(10) 强制类型转换运算符
((类型))
(11) 分量运算符
(. ->)
(12) 下标运算符
([ ])
(13) 其他
(如函数调用运算符())
本篇主要介绍算术运算符和赋值运算符
一、算术运算符
1. 基本的算术运算符
Cl) +c 加法运算符,或正值运算符,如 3+5 +3);
(2) -(减法运算符,或负值运算符,如 5-2 -3);
(3) * (乘法运算符,如 * 5);
(4) / (除法运算符,如 5/3);
(5) % (模运算符,或称求余运算符,%两侧均应为整型数据,如 7%4 的值为 3)
2. 算术表达式和运算符的优先级与结合性
用算术运算符和括号将运算对象(也称操作数)连接起来的、符合 语法规则的式
子,称为 算术表达式。运算对象包括常最、变拭、函数等。例如, 下面是一个合法的
语言算术表达式:
a* b/c-1.5+'a'
语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别
高低次序执行,例如先乘除后加减。如表达式 * C, 的左侧为减号,右侧为乘号,而
乘号优先于减号 因此,相当于 a-(b * c) 。如果在 个运算对象两侧的运算符的优先级
别相同,如 a-b+c, 则按规定的“结合方向“处理.
3. 强制类型转换运算符
可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:
(double)a
(int)(x+y)
Cfloat) (5 % 3)
其一般形式为
(类型名)(表达式)
(将 转换成 double 类型)
(将 x+y 的值转换成整型)
(将 5%3 的值转换成 float 型)
注意,表达式应该用括号括起来。
例:
# include <stdio. h>
void main()
float x;
mt 1;
x=3. 6;
i= (int)x;
printf("x= %f, i= %d\n" ,x,i);
运行结果如下:
x=3. 600000, i=3
X类型仍为 float 型,值仍等于 3.6
4. 自增、自减运算符
作用是使变量的值增 或减 1, 例如:
++i, --i (在使用i之前,先使i的值加(减) 1)
++i, --i (在使用i之后,使i的值加(减) 1)
二、赋值运算符
1. 赋值运算符
赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变扯。如 "a= 3"的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量 。也可以将一个表达式 的值赋给一个变量。
三、各类数值型数据间的混合运算
整型(包括 int short long) 和浮点型(包括 float double) 可以混合运算。

规则:
从右向左:必转
从下到上:
低精度类型 与 高精度类型混合运算
此时 低精度 往 高精度转
从右向左:必转
从下到上:
低精度类型 与 高精度类型混合运算
此时 低精度 往 高精度转