# 關鍵字
## 關鍵字的基本概念
- 被C語言賦予了特殊含義的單詞
+ 關鍵字特征:全部都是小寫
+ 關鍵字在開發工具中會顯示特殊顏色
> 編譯器嚴格區分大小寫
> 注意: 關鍵字不能用作變量名、函數名等
- C語言中一共有32個關鍵字
+ auto double int struct break else long switch
+ case enum register typedef char extern return
+ union const float short unsigned continue for
+ signed void default goto sizeof volatile do if while static
> 這些不用專門去記住,用多了就會了。在編譯器里都是有特殊顏色的。 我們用到時候會一個一個講解這個些關鍵字怎么用,現在瀏覽下,有個印象就OK了。
## 數據類型關鍵字
- 基本數據類型(5個)
+ void :聲明函數無返回值或無參數,聲明無類型指針,顯式丟棄運算結果
+ char :字符型類型數據,屬于整型數據的一種
+ int :整型數據,通常為編譯器指定的機器字長
+ float :單精度浮點型數據,屬于浮點數據的一種
+ double :雙精度浮點型數據,屬于浮點數據的一種
- 類型修飾關鍵字(4個)
+ short :修飾int,短整型數據,可省略被修飾的int。
+ long :修飾int,長整形數據,可省略被修飾的int。
+ signed :修飾整型數據,有符號數據類型
+ unsigned :修飾整型數據,無符號數據類型
- 復雜類型關鍵字(5個) struct :結構體聲明分區
+ struct :結構體聲明
+ union :共用體聲明
+ enum :枚舉聲明
+ typedef :聲明類型別名
+ sizeof :得到特定類型或特定類型變量的大小
- 存儲級別關鍵字(6個)
+ auto :指定為自動變量,由編譯器自動分配及釋放。通常在棧上分配
+ static :指定為靜態變量,分配在靜態變量區,修飾函數時,指定函數作用域為文件內部
+ register :指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數
+ extern :指定對應變量為外部變量,即標示變量或者函數的定義在別的文件中,??示編譯器遇到此變量和函數時在其他模塊中尋找其定義。
+ const :與volatile合稱“cv特性”,指定變量不可被當前線程/進程改變(但有可能被系統或其他線程/進程改變)
+ volatile :與const合稱“cv特性”,指定變量的值有可能會被系統或其他進程/線程改變, 強制編譯器每次從內存中取得該變量的值
## 流程控制關鍵字
- 跳轉結構(4個)
+ return :用在函數體中,返回特定值(或者是void值,即不返回值)
+ continue :結束當前循環,開始下一輪循環
+ break :跳出當前循環或switch結構
+ goto :無條件跳轉語句
- 分支結構(5個)
+ if :條件語句,后面不需要放分號
+ else :條件語句否定分支(與if連用)
+ switch :開關語句(多重分支語句)
+ case :開關語句中的分支標記
+ default :開關語句中的“其他”分支,可選。
- 循環結構(3個)
+ for:for循環結構,for(1;2;3)4;的執行順序為1->2->4->3->2...循環,其中2為循環條件。在整個for循環過程中,表達式1只計算一次,表達式2和表達式3則可能計算多次,也可能一次也 不計算。循環體可能多次執行,也可能一次都不執行。
+ do :do循環結構,do 1 while(2); 的執行順序是1->2->1...循環,2為循環條件
+ while :while循環結構,while(1) 2; 的執行順序是1->2->1...循環,1為循環條件 以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。