# c語言
## 一 語法
### 第一章 類型,運(yùn)算符與表達(dá)式
#### 1.變量
##### 1.1 變量名
變量標(biāo)識(shí)符只可以使用字母,下劃線以及數(shù)字,其中標(biāo)識(shí)符的開頭必須是字母或下劃線。
下劃線開頭的變量一般是擴(kuò)展或?qū)崿F(xiàn),用戶不應(yīng)該直接使用。
變量是區(qū)分大小寫的,我們一般用小寫來標(biāo)識(shí)變量,大寫來標(biāo)識(shí)常量。
變量名不能與關(guān)鍵字沖突。
##### 1.2 變量與常量
變量是可以變化的,有的時(shí)候我們不想要變量被改變,可以使用 `#define`定義一個(gè)宏,或者使用 `const`關(guān)鍵字對(duì)變量進(jìn)行限定。前者是狹義上的常量。
#### 2. 數(shù)據(jù)類型及長(zhǎng)度
##### 2.1 基本數(shù)據(jù)類型c89
- `char`: 1個(gè)字節(jié)
- `short`: 2個(gè)字節(jié)
- `int`: 2 或 4個(gè)字節(jié)
- `long`: 4 或 8個(gè)字節(jié)
- `float`: 4 個(gè)字節(jié)
- `double`: 8 個(gè)字節(jié)
添加 `unsigned`,長(zhǎng)度不變,范圍則從0開始。
##### 2.2 新增數(shù)據(jù)類型c99
- `long long`:8 個(gè)字節(jié)
- `long doble`: 長(zhǎng)度不定
- `_Bool`: 1個(gè)字節(jié),需要包含 `stdbool.h`
- `int_8`, `int_16`, `int_32`... 需要包含`inttypes.h`
#### 3. 常量
##### 3.1 數(shù)字類型常量
- `123`:? 默認(rèn)為`int`類型的常量, 后綴 `l` 或 `L` 則為 `long` 類型, 如 `123L`。
- 如果一個(gè)數(shù)字太大,超過 `int` 的范圍,則被當(dāng)作 `long` 類型進(jìn)行處理。
- 無符號(hào)常量用 `u` 或 `U`進(jìn)行結(jié)尾, 如 `123u` 表示 `unsigned int` 類型, `u`/`U` 可以與 `l`/`L`一起使用, 如 `1111UL` 表示 `unsigned long int` 類型。
- `123.45`: 浮點(diǎn)數(shù)默認(rèn)為 `double` 類型,后綴 `f`/`F`, 則表示為 `float` 類型。
##### 3.2 八進(jìn)制,十六進(jìn)制的整型
- `011`: 0開頭的數(shù)字表示8進(jìn)制,這里`011` 即十進(jìn)制的 `9`
- `0X11` / `0x11`: `0x`或`0X`開頭的數(shù)字表示16進(jìn)制整數(shù), 這里的 `0x11` 即 17
##### 3.3 字符常量
字符常量是整數(shù)類型的一種, 因此可以直接與整數(shù)進(jìn)行運(yùn)算:
```c
```
## 二 標(biāo)準(zhǔn)庫(kù)
## 三 三方庫(kù)
## 四 c語言標(biāo)準(zhǔn)變化
## 五 gcc