在 C 語言中,字符實際上是以整數形式存儲的,對應其 ASCII 碼值。當我們編寫 c1 += 4 這樣的語句時,編譯器會將字符 'C' 轉換為其 ASCII 碼值 67,然後執行加法運算,結果為 71,對應字符 'G'。
#include <stdio.h>
int main() {
char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';
c1 += 4;
c2 += 4;
c3 += 4;
c4 += 4;
c5 += 4;
printf("password is %c%c%c%c%c\n", c1, c2, c3, c4, c5);
return 0;
}
| 原字符 | ASCII 碼 | +4 後 | 新字符 |
|---|---|---|---|
| C | 67 | 71 | G |
| h | 104 | 108 | l |
| i | 105 | 109 | m |
| n | 110 | 114 | r |
| a | 97 | 101 | e |
程式最終輸出:password is Glmre
char 類型實際是 1 字節整數c1 += 4 完全等同於 c1 = c1 + 4char lower = 'a';
char upper = lower - 32; // 'A',利用 ASCII 碼差值 32
// 或使用標準庫函數
#include <ctype.h>
upper = toupper(lower);