免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1476 | 回复: 0
打印 上一主题 下一主题

[C++] 关于C++中wchar_t 类型的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-09 16:25 |只看该作者 |倒序浏览
初学C++,近日在看C++ primer 3ed,对3.1节的wchar_t的介绍有疑惑。书中说wchar_t是用于特殊语言集的,如汉字等。我觉得可能是对unicode的支持。遍了一个小程序测试一下,产生了问题。
书中介绍用引用wchar_t字符要在字符前加L。下面是我的2个程序,对有L和没有L出不同。
[program 1]
#include <iostream>;
using namespace std ;

const wchar_t wchar_c = 'W' ;

int main (int argc , char **argv)
{
    wchar_t a ;   
    char b;
    int c;
   
    a = '忍';
    b = 'C' ;
    c = sizeof(a);
    cout << "["<< a <<"]"
         << "["<< wchar_c <<"]"
         << "["<< b <<"]"
         << "["<< c <<"]"
         << "\n" ;

}

执行输出:[51404][87][C][4]

[program 2 ]
#include <iostream>;
using namespace std ;

const wchar_t wchar_c = L'W' ;

int main (int argc , char **argv)
{
    wchar_t a ;   
    char b;
    int c;
   
    a = L'忍';
    b = 'C' ;
    c = sizeof(a);
    cout << "["<< a <<"]"
         << "["<< wchar_c <<"]"
         << "["<< b <<"]"
         << "["<< c <<"]"
         << "\n" ;

}
执行输出:[204][87][C][4]

注解:忍的字节码为 C8 CC   
         C8 CC = 51404
               CC = 204
为什么输出会不同?怎样使用wchar_t ? wchar_t的大小为什么是4?
我的系统solaris 5.8(x86) gcc 3.3.2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP