char类型:存储字符,字母或者标点符号,其大小为ibit。
从技术层面上来讲,char类型存储的值依旧是int类型,例如在ASCII码中,整数65表示大写的A。
char的赋值
1)字符和常量初始化
#include <iostream>
using namespace std;
int main()
{
char b = 65;//输出:A 是正确的,但是这是一种不好的编码风格。前提:系统使用的是ASCII码
char a = '65';//输出:5
char a1 = '9876';//输出:6
//char a2 = '98765';//编译错误:常量中的字符太多
char c = 'A';//正确赋值
//char d = A;//编译错误,此时A是变量。报错:未声明的标识符
//char e = "A";//编译错误,此时"A"是字符串
char e1 = 'ABCD';//输出:D
//char e2 = 'ABCDE';//编译错误:常量中的字符太多
char e3 = -65;//不会报错,但是不能输出任何值
cout << b << endl;
cout << a << endl;
cout << b << endl;
cout << a1 << endl;
cout << c << endl;
cout << e1 << endl;
cout << e3 << endl;
}
注意:关于char类型的正负:理论上来讲char类型可以表示负数(取决于当前的编译器)。在实际运用时,unsigned char表示无符号类型,signed char表示有符号类型。
2)非打印字符
虽然直接给char赋数字是一种不好的代码习惯(因为前提是需要知道编码方式),但是在定义某些非打印字符时,则必须要使用数字对char进行赋值。比如:蜂鸣器,换行,终端响铃等。
char Buzzer = 7;//在ASCII码下,蜂鸣器的值为7
有的非打印字符也可以通过转义字符进行赋值。
char a = '\a';//警报:其能否触发取决于计算机硬件配置;也可以尝试 a = '\007';进行赋值
char b = '\n';//换行
注意:在使用ASCII进行赋值时,最好写成’\007’而不是’007’,前添加\可以更清晰的表达编码意图。同时,这种写法也可以嵌入c的字符串中。