pstr[i] = "49 '1'",以為是字串 "49"實際上:'1' 的 ASCII 碼是 49 (0x31)。調試器同時顯示**數值**與**字元字面值**方便查看。
char* pstr = "123+5*6";
// pstr[0] = '1' (ASCII 49)
// pstr[1] = '2' (ASCII 50)
// ...
| 顯示 | 含義 |
|---|---|
49 '1' | 十進制值 49,對應字元 '1' |
50 '2' | 十進制值 50,對應字元 '2' |
43 '+' | 十進制值 43,對應字元 '+' |
#include
int main() {
char c = '1';
printf("char: %c, dec: %d, hex: 0x%X\n", c, c, c);
// 輸出:char: 1, dec: 49, hex: 0x31
return 0;
}
char 本質是 **1 位元組整數**。'A'、'1'、'+' 在編譯期即轉為對應 ASCII/UTF-8 數值。atoi(pstr[i]) 轉換單字元,直接 pstr[i] - '0' 得數值。\0 值為 0,調試器顯示 0 '\0'。