# 基礎語法
## 運算符與表達式
?? 表達式的值,有多種情況。如:算術表達式的值是數字,布爾表達式的值是 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的值。
> ?? 三目運算符的優先級,```?:``` 之間的表達式不可拆分,但兩側的最好加一個括號。
### 六、邏輯運算符和相關表達式
#### 邏輯運算符
```
```
## 流程控制語句