C++ 字符数据类型 摘自《VisualC++2005入门经典》P46-P47

来源:互联网 发布:java集合类常用方法 编辑:程序博客网 时间:2024/06/04 19:29

数据类型char具有双重目的。它指定1字节变量,可以使用这种变量存储给定值域内的整数,或者存储单个ASCII字符的代码。

举例,可以使用下列语句声明一个char型变量:


char  letter = ''A' ;


这个语句声明了一个名称为letter的变量,并利用一个常量‘A’对它进行初始化。


由于字符'A'是由ASCII表示的十进制数值65,所以可以把上面的语句写成:


char  letter = 65;  这个语句与前面那个语句相同。对于VC++来讲,可以存储在char变量中的整数的值域是从-128到127.


摘自《VisualC++2005入门经典》P46-P47


注意:

ISO/ANSI C++标准不要求char形变量必须表示有符号的1字节整数。至于char型变量是表示值域-128~127的有符号数,还是表示值域0~255的无符号数,这是由编译器的实现方式来决定的。如果不是使用的VC++编译器,就可以忽略这个。


类型wchar_t的叫法源于它是宽字符类型,这种类型的变量存储2字节字符代码,值域为0~65535.下面是定义wchar_t类型变量的一个示例:

wchar_t letter = L‘Z’;

这个语句定义了一个变量letter,并利用字母Z的16位代码对它进行了初始化。字符常量'Z'前面的字母L告诉编译器这是一个16位字符代码值。

        也可以使用十六进制常量初始化char型变量(和其他整型变量),当可用的字符代码是十六进制值时,使用这种表示法显然比较容易些。十六进制数是利用十六进制数字的标准表示法编写的:0到9,A到F(或者a到f)的值是从10到15.为了与十进制相区分,它还以0x(或者0X)作为开始。因此,为了得到完全一致的结果,可以把上面的语句重写成:

 char letter = 0x41; // 与A等效


注意:

不要写具有前置零的十进制整数值。编译器将把这样的值作为八进制值(基数为8的数字系统)翻译,所以写成065的值将等同于十进制表示法中的53。


另外还要注意:WindowsXP提供了一个字符映射(CharacterMap)实用程序,它能够根据Windows可用的字体查找字符。它将显示十六进制的字符代码,并告诉您在输入这个字符时要使用的键。单击Start(开始)按钮,然后在Accessories(附件)文件夹中查看SystemTool(系统工具)文件夹,即可找到字符映射实用程序。


0 0
原创粉丝点击