C
语言以运算符丰富著称
1.可按不同角度对运算符分类
按操作数个数
单目运算符:
–
a
双目运算符:
a
+
b
三目运算符:
a
?
b
:
c
按功能
算术运算符:
+
、
–
、
*
、
++
关系运算符:
>
、
>=
、
==
逻辑运算符:
&&
、
||
、
!
2.表达式的相关概念
表达式
就是用运算符把操作数连接起来、符合
C
语法规则的式子,如
a+8*b
获得表达式的运算结果的过程称为
求解表达式
表达式的运算结果称为
表达式的值
表达式的值的数据类型称为
表达式的类型
每个表达式都有自己的值和类型
3.
基本的算术运算符
:
+
:
加法运算符
a+b
–
:
减法运算符
a-b
*
:
乘法运算符
a*b
/
:
除法运算符
a/b
%
:
求余运算符
a%b
+
:
正号运算符
(
单目运算符
) +a
–
:
负号运算符
(
单目运算符
) -a
说明
:
两个整数相除的结果为整数
如
5/3
的结果值为1,舍去小数部分
若
除数或被除数中有一个为负值
(
如
-5/3
)则商可能会因系统而异。一些
系统
-5/3=-1
,另一些
系统
-5/3=-2
VC6.0
采取
“
向零
靠拢
”
的方法
(
-5/3=-1)
%
运算符要求操作数
必须
为整数,结果也是整数。如
8%3
,结果为
2
4.自增、自减运算符
:
++
—
用法:
int
i
=3; ++
i
i
++
—
i
i
—
作用
:
使变量
i
的值
增
1或减1
⑴自增运算符单独使用时
++
i
:
先使
i
的值增
1
,再把
i
的值做为表达式的值
i
++
:先把
i
的值做为表达式的值
,
再
使
i
的值增
1
⑵
在有其它运算符的场合
5*(++
i
)
:
先使
i
的值增
1
,再用
i
的值参与其他运算
5*(
i
++)
:先用
i
的值参与其他运算
,
再
使
i
的值增
1
5.算术表达式和运算符的优先级与结合性
:
用算术运算符和括号将操作数连接起来的、符合C语法规则的式子,称为
算术表达式
10+7/5-15
C语言规定了运算符的优先级
和
结合性
优先级规定了运算符的计算顺序
结合性规定了同优先级的运算符的计算顺序
6.
不同类型数据间的混合运算
:
+
、
–
、
*
、
/
运算中有一个
操作
数为
float
或
double
型,结果是
double
型
。
系统将
float
型数据都先转换为
double
型,然后进行运算
。
(2)
如果
int
型与
float
或
double
型数据进行运算,先把
int
型和
float
型数据转换为
double
型,然后进行运算,结果是
double
型
。
(3)
字符型数据与整型数据进行运算,就是把字符的
ASCII
代码与整型数据进行运算
。
7.
强制类型转换运算符
强制类型转换运算符
的
一般形式为
(
类型名
)
(
表达式
)
(
int
) (
x+y
)
(将
x+y
的值转换成
int
型)
(float)(5%3)
(将
5%3
的值转换成
float
型)
(
int
)a
(
取
a
的值,并将其
转换成
i
nt
类型)
有两种类型转换
系统自动进行的类型转换
强制类型转换
8.C语言运算符
(1)
算术运算符
(
+ – * / % ++ —
)
(2)
关系运算符
(> < == >= <= !=)
(3)
逻辑运算符
(!&&
||
)
(4)
位运算符
(
<< >> ~ |
∧ &)
(5)
赋值运算符
(=及其扩展赋值运算符)
(6)
条件运算符
(?:)
(7)
逗号运算符
(
,)
(8)
指针运算符
(
*
和&)
(9)
求字节数运算符
(
sizeof
)
(10)
强制类型转换运算符
(
(
类型
)
)
(11)
成员运算符
(
.->
)
(12)
下标运算符
([
])
(13)
其他
(如函数调用运算符())