回 帖 发 新 帖 刷新版面

主题:问个小问题

wchar_t * pw = L"Hello!" ;

怎么为什么是十六位?

回复列表 (共2个回复)

沙发

我的解释:

C语言中char型字符长度为8位,一般情况下字符串中每个字符也是占8位。而wchar_t是“宽字符”类型,每个字符占16位。

如没有特别指示,"Hello!"中每一个字符占8位,整个字符串占7个字节。如果使用了wchar_t *型指针,需要在"Hello!"前加个L指示一个字符用16位空间来存贮,整个"Hello!"共占用14个字节空间,否则寻址时就会出错。

板凳

wchar_t 就是占16位的宽字符呀。

我来回复

您尚未登录,请登录后再回复。点此登录或注册