代码和输出结果如下:
#include<iostream>
using namespace std;
int main()
{
auto c='。';
cout << typeid(c).name() << endl;
cout << sizeof(c) << endl;
cout << c << endl;
}
int
4
41379
c初始化的字符是中文的句号
中文句号不止一个字节,用char是存不下的。简单结论:只有英文半角字符(含标点和数字)是char能存放的。
(事实上char数组也能存放其他语言的字符串,但是不同编译器输出的字符集可能有差异。)
用单引号来放一个多个字节的字符,其行为是编译器自行决定的(标准没有规定)。要auto正确地为宽字符推导为wchar_t类型,不能简单使用双引号,要在双引号前加大写字母L。