1. 程式人生 > >C風格字串儲存漢字

C風格字串儲存漢字

char是一個位元組,那char陣列是怎麼儲存多位元組的漢字的呢?

在windows10 用vs2017編譯下面程式

#include<iostream>

using namespace std;

int main()
{
    char s[] = "漢字";
    cout << sizeof(s) << endl;
    cout << s << endl;
    system("pause");
    return 0;
}

得到

這裡寫圖片描述

查詢記憶體分佈後得到

這裡寫圖片描述

而在gbk編碼下

這裡寫圖片描述

從這些可以知道,多位元組編碼的漢字儲存在char數組裡時被截斷了。

sizeof()得到的結果可能因為編碼的不同而不同

至於本例中為什麼等於5的原因是後面還有個’\0’