用一对单引号括起来的一个或多个字符称为字符型常量,如’A’、‘AA’、’\n’和’5’等,其中’A’、’?'和’5’称为单字符常量,‘AA’称为双字符常量,’\n’称为转义字符序列。由以下代码可以看出,对双字符常量来说,系统将其解释为一个int类型的数据,前面的字符作为低位字节,后面的字符作为高位字节,这种方式仅适用于可显示字符。
#include <iostream>
using namespace std ;
int main(int argc, const char** argv) {
cout << "\'A\' is "<<'A'<<endl ;
cout << "\'B\' is "<<'B'<<endl ;
cout << "\'AB\' is "<<'AB'<<endl ;
return 0;
}
输出结果如下所示。
'A' is A
'B' is B
'AB' is 16706
同样可以使用“‘ABA’”和“‘ABAB’”这样的形式,唯一的限制来自于int的字节数,对有些系统来说,int型占两个字节,则“‘ABA’”和“‘ABAB’”不合法,对int类型占4个字节的系统来说,“‘ABA’”和“‘ABAB’”完全可用。但不管对什么样的系统,“‘ABABA’”及更多字母组合的写法都是错误的。
提示
多字符常量除了增加程序阅读难度外,似乎没有其他的好处,不推荐使用。字符型量在C++中可作为单字节的整型常量来用。