第三章 C语言的运算符****
本文已参与【新人创作礼】活动,一起开启掘金创作之路。
C语言提供了13种运算符
(1)算数运算符
(2)关系运算符
(3)逻辑运算符
(4)位运算符
(5)赋值运算符
(6)条件运算符
(7)逗号运算符
(8)指针运算符
(9)求字节数运算符
(10)强制类型转换运算符
(11)成员运算符
(12)下标运算
(13)其他
(本章仅介绍算数运算符、赋值运算符和强制类型转换运算符,其余的内容将会在后续章节中进行补充讲解)
1. 算数运算符
①自增(++)自减(--)运算符
自增(++)自减(--)运算符的作用是使变量的值加1或减1
例如:
定义一个变量i
i++:在使用i后,再使i加1。
i--:在使用i后,再使i减1。
++i:在使用i前,使i加1。
--i:在使用i之前,使i减1。
代码举例:
运行结果:
②假设存在两个变量a,b,a=2,b=1
加法运算符(+):举例a+b,值为3。(该运算符还可以作为正号使用)
减法运算符(-):举例a-b,值为1。(该运算符还可以作为负号使用)
乘法运算符():举例ab,值为2。
除法运算符(/):举例a/b,值为2。
求余运算符(%):举例a%b,值为0。(该运算符所求的值为两数相除的余数)
2. 强制类型转换运算符
一般形式:(类型名)(表达式)
例如:int a; (double)a;(将a强制转换为double类型)。
注意:
①表达式建议用括号括起来,当遇到(double)a+b时,则只是将a强制转换为double类型,然后与b相加。
②假如定义一个float类型变量a,a的值为3.5,那么将a强制转换为int类型时,只会保留整数部分,小数部分舍弃。
3. 赋值运算符
顾名思义,赋值运算符便是将一个变量或表达式赋值给一个变量,且运算符的左侧必须是变量,不可以是常量或表达式。
4. 关于运算符的优先级问题
C语言规定了运算符的优先级(例如先乘除后加减),还规定了运算符的结合性。在进行表达式求值时,先按照运算符的优先级的顺序执行,然后当运算符两侧的优先级相同时,则按照“结合方向”处理。C语言规定了各种运算符的结合方向。如下图所示:
①优先级1:圆括号(())、下标运算符([])、指向结构体成员运算符(->)、结构体成员运算符(.) 结合方向:自左向右
②优先级2:逻辑非运算符(!)、按位取反运算符(~)、自增运算符(++)、自减运算符(--)、负号运算符(-)、类型转换运算符((类型))、指针运算符(*)、取地址运算符(&)、长度运算符(sizeof) 结合方向:自右向左
③优先级3:乘法运算符(*)、除法运算符(/)、求余运算符(%) 结合方向:自左向右
④优先级4:加法运算符(+)、减法运算符(-) 结合方向:自左向右
⑤优先级5:左移运算符(<<)、右移运算符(>>) 结合方向:自左向右
⑥优先级6:关系运算符(< ,<=, >, >=) 结合方向:自左向右
⑦优先级7:等于运算符(==)、不等于运算符(!=) 结合方向:自左向右
⑧优先级8:按位与运算符(&) 结合方向:自左向右
⑨优先级9:按位异或运算符(^) 结合方向:自左向右
⑩优先级10:按位或运算符(|) 结合方向:自左向右
⑪优先级11:逻辑与运算符(&&) 结合方向:自左向右
⑫优先级12:逻辑或运算符(||) 结合方向:自左向右
⑬优先级13:条件运算符( ? : ) 结合方向:自右向左
⑭优先级14:赋值运算符(=,+= ,-=,*=,/=,%=,>>=,<<=,&=,^=) 结合方向:自右向左
⑮优先级15:逗号运算符(,) 结合方向:自左向右