C 語言入門筆記(一):計算機基礎、語言發展史與 C 語言特性
建立扎實的計算機與程式語言認知基礎,理解 C 語言的歷史地位與核心優勢。
一、計算機與軟體常識
1. 計算機運作原理
- 硬體三大件:硬碟(持久化)、記憶體(執行時)、CPU(運算控制)。
- 程式安裝在硬碟,**載入記憶體執行**,CPU 取指→解碼→執行→寫回。
2. 二進制世界
3. 軟體本質
- 軟體 = 指令集合。開發軟體 = 編寫控制計算機的指令序列。
4. 程式語言角色
- 人類可讀寫的符號系統,經編譯器/直譯器翻譯為機器碼。
二、程式語言發展史
| 世代 | 語言 | 特徵 | 優點 | 缺點 | 用途 |
| 1GL | 機器語言 | 0/1 指令碼 | 直執行、極高效、硬體直控 | 難讀寫、強硬體綁定、指令難記 | 廠商韌體 |
| 2GL | 組合語言 | 助記符 (MOV, ADD) | 可讀性稍升、仍高效、硬體直控 | 平台綁定、符號繁多、開發慢 | OS 核心、驅動、單晶片、逆向 |
| 3GL | 高級語言 | 接近自然語言 | 易學、可移植、生產力高 | 需編譯、效率略低 | C, C++, Java, C#, Objective-C... |
三語言對比:計算 1+1
// 機器語言
10111000 00000001
00000000 00000101
00000001 00000000
// 組合語言
MOV AX, 1
ADD AX, 1
// C 語言
1 + 1
三、C 語言簡介
1. 為何先學 C
- Objective-C、C++、C# 皆源於 C,語法/思想基石。
- OC 與 C 混編,理解 C 為 OC 進階必經之路。
- 經典教材、演算法實現多以 C 為準。
2. 歷史里程碑
- 1972 年:丹尼斯·里奇為重寫 UNIX 發明 C。
- 1989 年:ANSI C (C89) 標準化。
- 1999 年:ISO C99 (內聯、VLA、複合字面量、
// 註解...)。
- 2011 年:C11 (執行緒、原子操作、泛型選擇、邊界檢查介面...)。
3. 核心特性
- 豐富運算符 (位運算、指標算術、三元...)。
- 豐富資料型別 (整數、浮點、指標、陣列、結構、聯合、列舉)。
- 直接操作硬體 (指標、記憶體映射 I/O、內嵌組語)。
- 高效目標代碼 (輕量運行時、零開銷抽象)。
- 良好可移植性 (標準庫抽象平台差異)。
4. 主要應用領域
- 系統軟體 (OS、編譯器、資料庫、嵌入式)。
- 圖形/遊戲引擎、高效能運算。
- Android NDK / iOS 核心層開發。
- 網路協議棧、安全加密庫。