程式語言一 · 導覽投影片
→ / space 前進 ← 回 Esc 總覽 F 全螢幕# include <stdio.h> // ① 引入函式庫
int main(void) { // ② 唯一入口
printf("Hi\n"); // ③ 執行動作
return 0; // ④ 回報正常結束
}
每個程式有且只有一個 main;作業系統從它第一行開始跑。這五行每行你都要能解釋。
| 階段 | 做什麼 | 抓到的錯 |
|---|---|---|
| 前處理 | 展開 #include/#define、去註解 | gcc -E 看結果 |
| 編譯 | C → 組合語言 | 語法錯誤 |
| 組譯 | → 機器碼 .o | (少直接報錯) |
| 連結 | 合併函式庫(printf 等) | 找不到函式 undefined reference |
gcc hello.c -o hello 一步跑完四階段。
| 格式符 | 型別 | 範例 → 輸出 |
|---|---|---|
%d | int | 42 |
%.2f | float | 3.14 |
%c / %s | char / 字串 | A / Hi |
\n 換行、\t Tab。其餘字元原樣輸出、不自動加空格:printf("A%dB%dC",1,2) → A1B2C。
int age;
scanf("%d", &age); // 變數前一定要加 &
scanf("%d", age) 漏 &。scanf 要變數的位址才寫得回去,漏了可能直接 crash,而且編譯器不一定警告。;)。所以標準編譯加 -Wall,把警告全打開並清掉。
#include <stdio.h> 用 printf → implicit declarationscanf 漏 &%d 印 float)→ 未定義行為5/2=2),要浮點得轉型或用 2.0