C++ 以「零開銷抽象」著稱,兼具高層語言表達力與底層控制能力。其核心優勢在於:
source.cpp
│
▼ 預處理器
processed.cpp (.i) ← 展開 #include、#define、條件編譯
│
▼ 編譯器
object.o (.obj) ← 機器碼、符號表、重定位資訊
│
▼ 連結器
a.out / app.exe ← 解析外部符號、鏈接庫、生成最終可執行檔
關鍵概念:
main、Main、MAIN 是三個不同標識符。
| 類別 | 範例 |
|---|---|
| 關鍵字 | int, class, if, while, template, nullptr |
| 標識符 | myVariable, _count, MAX_SIZE |
| 字面常量 | 42, 3.14, 'a', "hello", true |
| 運算子 | +, -, *, /, %, <<, >>, ==, && |
| 標點符號 | { } [ ] ( ) ; , : :: |
| 空白字元 | 空格、Tab、換行(分隔 token 用) |
| 代碼 | 解釋 |
|---|---|
// ... 或 /* ... */ | 單行/多行註解,編譯器忽略 |
#include <iostream> | 預處理器將 iostream 內容原文插入此處 |
int main() { } | 程式進入點,由啟動代碼 (CRT) 呼叫 |
std::cout << "..." | 輸出流運算子,鏈式呼叫支援多參數 |
namespace std | 標準庫符號容器,避免名稱衝突 |
"Hello, world!" | 字串字面常量,類型 const char[14] |
跳脫序列 \n, \t, \\ | 特殊字元表示 |
return 0 | 向 OS 回報成功退出碼 |
| 誤區 | 正確做法 |
|---|---|
使用 void main() | 標準要求 int main() |
忽略 return 0 | C++ 隱含返回 0,但建議顯式寫出 |
全域 using namespace std | 函式內部使用或 using std::cout |
混用 printf/scanf 與 iostream | 選一風格;若混用需 ios::sync_with_stdio(false) |
字串用 char* 手工管理 | 優先使用 std::string |
Day 2 將涵蓋:變數與資料型別、運算子優先序、控制流程、函式基礎。建議先熟悉編譯器(GCC/Clang/MSVC)與 IDE(VS Code、CLion、Visual Studio)基本操作。