# 0 基礎 C 語言教學大綱
## 1️⃣ 認識 C 與環境設定
* C 語言歷史
* 安裝 VS Code / MinGW / WSL
* 編譯流程:gcc hello.c -o hello
* 第一個程式:Hello World
## 2️⃣ 基本語法與資料型態
* 變數命名規則、常數
* 資料型態:int, char, float, double
* printf / scanf 基礎格式化教學(%d, %f)
* 實作:BMI 計算器
## 3️⃣ 運算子與條件判斷
* 算術 / 比較 / 邏輯運算子
* if, else, else if
* switch 介紹與實作:計算成績等第
## 4️⃣ 迴圈與流程控制
* for, while, do-while
* break, continue 控制流程
* 綜合實作:求質數、費氏數列
## 5️⃣ 一維陣列與字串操作
* 陣列初始化、走訪、累加
* 字串:char s\[100] 與 %s
* 自製 split 函式概念(Beej’s split)
* 練習:反轉字串、字元統計
## 6️⃣-1 函式與模組化思維
* 函式定義、參數傳遞、回傳值
* void、int 型別使用習慣
* 遞迴:階乘與費氏數列
* CodeStep 練習題實作
## 6️⃣-2 函式進階 - recursion
* Recursion 演算法介紹
* Mergesort 介紹
## 7️⃣ 指標概念入門
* & 與 \* 解釋
* 指標變數宣告與賦值
* 指標與陣列的關係
* 練習:以指標反轉陣列
## 8️⃣ 陣列與指標整合
* 指標與字串陣列
* char \*\*argv 說明
* 二維陣列與 \*p\[] 操作
* Beej’s split 範例進階
## 9️⃣ 結構與 typedef
* struct/union 定義與使用
* 結構作為參數傳遞
* 結構現實應用
* 練習:學生資料管理系統
## 🔟 動態記憶體管理
* malloc, calloc, realloc, free
* 記憶體洩漏觀念介紹
* 記憶體配置深入觀察
* 字串複製與 split 實作
## 12 字串處理
* 字串操作標準函式(strlen, strcpy, strcmp, strcat)
* 字元與字串的差異與實用案例
* 實作練習:字串反轉、字元計數、子字串尋找
## 13 檔案處理基礎
* fopen, fscanf, fprintf, fclose
* 文字檔 vs 二進位檔說明
* 實作:讀寫學生資料
## 14 Linked list 結構
* 單向鏈結串列建立與走訪
* 插入與刪除節點操作
* 鏈結串列與 malloc 整合練習
## 15 Quicksort 演算法
* 排序演算法簡介與比較
* 快速排序演算法邏輯與實作
* 指標與遞迴的綜合應用