Skip to content
This repository has been archived by the owner on Aug 10, 2024. It is now read-only.

Latest commit

 

History

History
130 lines (84 loc) · 3.34 KB

7_运算符_表达式.md

File metadata and controls

130 lines (84 loc) · 3.34 KB

运算符 表达式

1. 表达式

1.1 定义

表达式是运算符及其操作数的序列

1.2 属性

  1. 类型
  2. 值类别

1.3 表达式的求值

表达式求值可以产生一个值,可能会产生副作用

2. 运算符

C用运算符表示算术运算 几种数学中常见的运算符号在C中有相似的表示

C中有30多种运算符,此章节只介绍一部分,并且只介绍它们的操作数都是算术类型时的行为

2.1 操作数

对于一个运算符来说,需要传入的变量叫做操作数,需要操作数数量为n的运算符称为n元运算符

2.2 运算符类型

2.2.1 赋值运算符 =

C中的 = 不表示 等于 ,而表示 赋值 例如 a = 33 这个值赋给 a 这个变量

2.2.2 比较运算符 == != > < >= <=

2.2.3 一元 + 和一元 -

2.2.4 加法类运算符 + -

2.2.5 乘法类运算符 * / %

  1. 整数 ÷ 整数 => 商 …… 余数 对于上面的式子,/ 得到商,% 得到余数

2.2.6 位运算符 & | ^ << >>

参见 位操作和布尔代数

2.2.7 更多的赋值运算符 += -= *= /= %= &= |= ^= <<= >>=

a += b 相当于 a = a + b,以此类推

2.2.8 逻辑运算符 && || !

2.2.9 条件运算符 ? :

2.2.10 sizeof 运算符

2.2.11 _AlignOf运算符

2.2.12 逗号运算符

2.2.13 成员访问运算符

2.2.14 函数调用运算符

2.2.15 转型运算符

2.2.1 2.2.7 合称赋值运算符 2.2.3 2.2.4 2.2.5 2.2.6 合称算术运算符 2.2.9 2.2.10 2.2.11 2.2.12 2.2.14 2.2.15被归类为其他运算符

2.3 结合性

  1. 当多个优先级相同的运算符作用于同一个操作数,需要有规则决定计算的顺序
  2. 举例:a+b+c中,先计算a+b
  3. 当运算没有结合律(如减法),或副作用(如赋值),结合性的定义很有必要

2.4 优先级

2.5 运算符宏

在头文件 <iso646.h> 中定义

运算符
&& eq
&= and_eq
& bitand
| bitor
~ compl
! not
!= not_eq
|| or
|= or_eq
^ xor
^= xor_eq

2.6 代用记号(不建议使用)

符号 代用记号
{ <%
} >%
[ <:
] :>
# %:
## %:%:

3. 值类别

4. 副作用

5. 求值顺序

本章内容对应 cppref 链接如下: