變數本質:記憶體地址的具名標籤
宣告變數即向編譯器申請記憶體並命名。未初始化的區域變數含隨機垃圾值(全域/靜態變數自動歸零),使用前必須初始化。
基本操作範例
int x; // 宣告,值不定
x = 100; // 賦值
x += 50; // 累加,x=150
int y = 150; // 宣告並初始化
x += y; // x=300
x++; // x=301
命名規範與限制
- 字母、數字、底線組合;首字元必須為字母或底線。
- 區分大小寫;避免雙底線開頭(編譯器保留)。
- 長度建議 < 20 字元(標準保證 31 字元內唯一)。
- 語意化命名: 使用
userCount、maxBufferSize 而非 a、b2。
基本資料型別與記憶體佈局
| 型別 | 位元組 | 範圍 (32/64 位系統常見) |
| char / signed char | 1 | -128 ~ 127 |
| unsigned char | 1 | 0 ~ 255 |
| short | 2 | -32,768 ~ 32,767 |
| int | 4 | -2,147,483,648 ~ 2,147,483,647 |
| long long | 8 | -9.22e18 ~ 9.22e18 |
| float | 4 | ~7 位有效數字 |
| double | 8 | ~15 位有效數字 |
| bool | 1 | true / false |
注意: int 與 long 在 64 位 Linux 為 4/8 位元組,Windows 64 位均為 4。可移植代碼請用 <cstdint> 定義的 int32_t, int64_t 等。
物件導向與元件開發
C++ Builder / MFC / Qt 等框架大量使用「元件」概念:封裝細節、支援繼承擴展、IDE 視覺化拖拉。掌握變數與型別是理解元件屬性、事件、方法的基礎。
常見錯誤與最佳實踐
- 未初始化讀取: 啟用編譯器警告
-Wall -Wextra、使用 Sanitizer。
- 型別縮窄轉換:
int x = 3.75; // x=3,截斷非四捨五入 使用 static_cast 明確意圖。
- 有號/無號混用: 比較運算隱式轉換導致邏輯錯誤,統一使用有號型別或顯式轉換。
- 上一篇文章: C++ 學習心法:從入門到精通的職業發展路徑與技術選型指南
- 下一篇文章: C++ 資料型別深度解析:型別系統、轉換規則與溢位陷阱
Copyright ©
程式碼之家 All Rights Reserved