# 基础语法
## 运算符与表达式
⭐️ 表达式的值,有多种情况。如:算术表达式的值是数字,布尔表达式的值是 0 / 非0等。
### 一、算术运算符与表达式
| 运算符 | 表达式 |
|:--|:--|
| + - * / % | 常量、变量与运算符组成 |
不同类型间数据运算,关系如下:
1) 有符号向无符号看齐;
2) 段字节向长字节看齐;
3) 整型向浮点型看齐;
4) 单精度向双精度看齐。
> ⭐️ 运算符的优先级
### 二、赋值运算符与表达式
```
变量 = 表达式
```
### 三、自增/自减运算符和表达式
#### 自增 ```++```
```
int a = 0, b;
b = a++;
// printf a, b; // a=1, b=0
```
```
int a=0, b;
b = ++a;
// printf a,b; //a=1, b=1
```
表达式值:
1) a++ 称加前取值,先取值,再增加,表达式的值是 a 增加前的值;
2) ++a 称加后取值,先增加,再取值,表达式的值是 a 增加后的值。
```
int i = 0;
while(i++ < 5) {...} //循环 5次
while(++i < 5) {...} //循环 4次
思考:
while(*s1++ = *s2++) ?
```
#### 自减 ```--```
同自增
### 四、关系运算符与表达式
#### 关系运算符
```
<
>
>=
<=
!=
==
```
#### 关系表达式
```表达式1 关系运算符 表达式2```
值:运算符所示关系成立,表达式值为 1,反之为0。(关系表达式值只会是 0 / 1)
### 五、三目运算符与表达式
#### 三目运算符
```
? :
```
#### 三目表达式
``` 表达式 ? 表达式1 : 表达式2 ```
功能:先计算表达式,若表达式非 0(真),计算表达式1。若表达式为 0(假),计算表达式2。
值:表达式为真,三目表达式的值就为表达式1的值,否则为表达式2的值。
> ⭐️ 三目运算符的优先级,```?:``` 之间的表达式不可拆分,但两侧的最好加一个括号。
### 六、逻辑运算符和相关表达式
#### 逻辑运算符
```
```
## 流程控制语句