Turbo C 數據類型體系
基本類型:int、float、char、pointer、void。構造類型:struct、union(後續章節)。
整型 int
修飾符組合
| 聲明 | 別名 | 位寬 | 範圍 |
signed short int | short/int | 16 位 (2 字節) | -32,768 ~ 32,767 |
signed long int | long | 32 位 (4 字節) | -2,147,483,648 ~ 2,147,483,647 |
unsigned short int | unsigned int | 16 位 | 0 ~ 65,535 |
unsigned long int | unsigned long | 32 位 | 0 ~ 4,294,967,295 |
變量定義示例
int a, b; // 有符號短整型 (16 位)
unsigned long c; // 無符號長整型 (32 位)
short s; // 等同 short int
long l; // 等同 long int
整型常量三種進制
| 進制 | 前綴 | 示例 |
| 十進制 | 無 (非 0 開頭) | 220, -560, 45900 |
| 八進制 | 0 | 06, 0106, 05788 |
| 十六進制 | 0x / 0X | 0x0D, 0xFF, 0x4e |
- 後綴
L/l 強制長整型:22L, 0773L, 0xae4l。
浮點型 float
兩種精度
| 類型 | 關鍵字 | 位寬 | 範圍 |
| 單精度 | float | 32 位 (4 字節) | 3.4e-38 ~ 3.4e+38 |
| 雙精度 | double | 64 位 (8 字節) | 1.7e-308 ~ 1.7e+308 |
- 均為有符號,無無符號浮點型。
- 浮點常量默認
double 類型。
- 絕對值 <1 可省略前導 0:
.22 = 0.22。
- 默認輸出保留 6 位小數。
變量定義
float a, f; // 單精度
double b; // 雙精度
常量表示
+29.56, -56.33, -6.8e-18, 6.365
1.23E4 // 科學計數法
字符型 char
有符號 vs 無符號
char a; // 有符號字符:-128 ~ 127
unsigned char b; // 無符號字符:0 ~ 255
- 字符在內存中以 ASCII 碼存儲 (1 字節)。
- 有符號字符參與運算時提升為
int,負值符號擴展。
- 關鍵陷阱:ASCII > 0x7F (127) 的字符,有符號
char 視為負數。如 0x8C -> -116 (補碼 0xFF8C 擴展為 16 位)。處理漢字/擴展 ASCII 必須用 unsigned char。
字符數組 = 字符串
char str[10]; // 9 可用字符 + 1 終止符 '\0'
- 編譯器自動在末尾添加
\0,用戶可用長度 = 定義長度 - 1。
字符常量表示
| 形式 | 示例 | 說明 |
| 單引號字符 | 'a', '9', 'Z' | 可打印字符 |
| ASCII 十進制 | 85 | 'U' |
| ASCII 十六進制 | 0x5D | ']' |
| ASCII 八進制 | 0102 | 'B' |
| 轉義序列 | \n, \t, \\, \', \" | 控制字符 |
Turbo C 2.0 特有轉義
| 符號 | 等價 | 含義 |
\f | \x0C | 換頁 |
\r | \x0D | 回車 |
\t | \x09 | 制表 |
\n | \x0A | 換行 |
\\ | \x5C | \ 符號 |
\' | \x27 | ' 符號 |
\" | \x22 | " 符號 |
總結
- 整型:
short/int/long 配合 signed/unsigned,16/32 位,常量三進制。
- 浮點:
float(32位) / double(64位),默認 double 常量。
- 字符:
char 有符號 (-128~127),unsigned char 無符號 (0~255);高位 ASCII 必用無符號;數組留 1 位給 \0。