char 本質是整數,但具備字符特性:單引號字面量('a'、'1')、printf/scanf 用 %c 輸入輸出。字符 '1' 的 ASCII 碼為 49,與整數 1 不等。
char c = 1, d = '1';
printf("c=%d, d=%d, d=%c\n", c, d, d); // c=1, d=49, d=1
scanf("%c", &c):讀取單字符(含空白),輸入 1 存 49。scanf("%d", &d); c = d;:讀取整數 49,轉字符得 '1'。scanf("%d %c", &i, &c); // 中間有空格:忽略空白,讀 1 和 a 均可
scanf("%d%c", &i, &c); // 無空格:輸入 "1 a" 會讀 1 和空格,a 留在緩衝區
'a' - 'A' 得大小寫間距。ch + 'a' - 'A';小轉大:ch + 'A' - 'a'。char c = 'A'; c++; printf("%c", c); 輸出 B。以反斜槓 \ 開頭,兩字符代表一字符:
| 轉義 | 含義 | 轉義 | 含義 |
|---|---|---|---|
\b | 退格 | \" | 雙引號 |
\t | 水平製表 | \' | 單引號 |
\n | 換行(通常含回車) | \\ | 反斜槓 |
\r | 回車 |
不同終端對 \b、\t 解析可能不同,實際使用時需測試。