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