C风格字符串存储汉字

来源:互联网 发布:学而时之不亦说乎全文 编辑:程序博客网 时间:2024/06/03 10:30

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’

原创粉丝点击