C语言基础第三讲

115 阅读3分钟

第三章 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。

代码举例:

image.png

运行结果:

image.png

②假设存在两个变量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:逗号运算符(,)    结合方向:自左向右