數據類型是程式設計的基石。C++ 繼承了 C 的類型系統並加以擴展,提供了豐富的基本類型與修飾符,並支援構建複雜的數據結構。本文系統梳理 C++ 的數據類型分類、字節佔用、取值範圍、存儲細節及關鍵注意事項。

圖 2.1 C++ 可使用的數據類型

表 2.1 數值型和字符型數據的字節數和數值範圍(以 Visual C++ 為例)
short int(短整型)、int(一般整型)、long int(長整型)signed(預設,最高位為符號位,補碼存儲)、unsigned(無符號,所有位表示數值,正數範圍翻倍)short ≡ short int,unsigned ≡ unsigned int以十進制 85 為例,二進制 1010101,在內存中按位存儲:


-2^15 ~ 2^15-1)0 ~ 2^16-1)適用場景:已知數值無負值(如年齡、長度)優先用 unsigned 擴大正數範圍。
| 類型 | 字節 | 有效數字 | 範圍 |
|---|---|---|---|
| float | 4 | 6~7 位 | ~±3.4e38 |
| double | 8 | 15~16 位 | ~±1.7e308 |
| long double | 8/10/16 | ≥15 位 | 實現相關 |
VC++ 6.0 中 double 和 long double 均佔 8 字節。
char:1 字節,可作為小整數或 ASCII 字符signed/unsigned 修飾影響範圍12、4.6、'a'、"hello"#define 或 const 定義的標識符利用 指針 與 結構體 可構建鏈表、樹、棧、圖等高級數據結構,這是演算法實現的基礎。
熟練掌握 C++ 數據類型的分類、修飾符語義、存儲方式及範圍特性,是編寫高效、正確、可移植代碼的前提。實際開發中應根據數值範圍、精度需求、內存限制合理選型,並注意不同編譯器/平台下的字節佔用差異(使用 sizeof 運算符檢測)。