C++ char資料型別(詳解版)

2020-07-16 10:04:35
前面我們介紹了數位資料型別,本節來看一看字元資料型別。

最簡單的字元資料型別是 char 資料型別。該型別的變數只能容納一個字元,而且在大多數系統上,只使用一個位元組的記憶體。以下範例即宣告了一個名為 letter 的 char 變數。請注意,這裡的字元常數就是賦給變數的值,要用單引號括起來。

char letter ='A';

下面的程式使用了一個 char 變數和若干字元常數:
//This program uses a char variable and several character literals.
#include <iostream>
using namespace std;
int main()
{
    char letter;
    letter = 'A';
    cout << letter << endl;
    letter = 'B';
    cout << letter << endl;
    return 0;
}
程式輸出結果:

A
B

有趣的是,字元與整數密切相關,因為它們在內部其實是被儲存為整數。每個可列印的字元以及許多不可列印的字元都被分配一個唯一的數位。用於編碼字元的最常見方法是 ASCII(美國資訊交換標準程式碼的首字母簡寫)。當字元儲存在記憶體中時,它實際上是儲存的數位程式碼。當計算機被指示在螢幕上列印該值時,它將顯示與數位程式碼對應的字元。

例如,數位 65 對應大寫字母 A,66 對應大寫字母 B,等等。下面的程式說明了字元之間的關係以及它們的儲存方式:
// This program demonstrates that characters are actually
// stored internally by their ASCII integer value.
#include <iostream>
using namespace std;

int main()
{
    char letter;
    letter = 65; // 65 is the ASCII code for the character A
    cout << letter << endl;
    letter = 66; // 66 is the ASCII code for the character B
    cout << letter << endl;
    return 0;
}
程式輸出結果:

A
B

圖 1 進一步說明,當你認為儲存在記憶體中的是字元(如 A、B 和 C)時,實際上儲存的是數位 65、66 和 67。

字符在內存中是以數字形式保存的
圖 1 字元在記憶體中是以數位形式儲存的