1. 寬字符類型的定義
寬字符類型 wchar_t 是這樣來的:
typedef short int wchar_t;
所以 wchar_t 實際上的空間是和 short int 一樣,占兩個字節。
寬字符類型wchar_t常用來存儲中文、日文和韓文;
使用前需包含頭文件,並聲明語言區域:
#include<locale>
setlocale(LC_ALL, "chs");//指定字符區域為中文
2. 下面給出在VS2010,win32環境下寬字符類型和單字符類型的比較
#include<iostream> #include<locale> using namespace std; int main() { setlocale(LC_ALL, "chs");//指定字符區域為中文 wchar_t st[] = L"中文的"; char stc[] = "中文的"; wcout<<st<<endl;//寬字符類型數組的內容:"中文的" cout<<stc<<endl;//單字符類型的內容:"中文的" cout<<st<<endl;//寬字符類型數組的地址 cout<<&stc<<endl;//單字符類型的地址 cout<<sizeof(st)<<endl;//寬字符類型數組的大小:3*2+2 = 8; cout<<sizeof(stc)<<endl;//單字符類型數組的大小:6*1+1 = 7;中文字符以兩個單字符存儲 cout<<"------------------------------"<<endl; cout<<sizeof(char)<<endl; cout<<sizeof(wchar_t)<<endl; return 0; }