一个汉字占用的内存至少为2字节,因此对多字节字符集和宽字符集来说,表示汉字的方式也略有不同:
多字节字符集的基本数据类型是char,占1字节,因此char无法表示一个汉字,只能用字符串来表示:
char a = '你'; //错误,一个汉字至少占2字节
char b[] = "好"; //正确
宽字符集的基本数据类型是wchar_t,通常占2字节,采用Unicode编码,可以表示汉字:
wchar_t a = L'你'; //正确
wchar_t b[] = L"好"; //正确
此外,采用多字节字符集表示汉字时,还需要注意源代码文件本身的编码是否和系统默认的字符集一致,否则可能导致乱码。例如在Windows下,源代码文件应该用GB-2312字符集编码。如果用UTF-8编码,就可能导致编译或运行时的乱码问题。