字符型
字符型用于表示一个字符。(c/c++中)
数据类型的关键字是:char
,创建语法是char 变量名称 = '初始值'
。
注意:初始值只能写一个字符。比如 a b c ,不可以写多个。并且在写单个字符的时候还需要使用单引号,一定是单引号标注起来。
char 占用 1 个字节(可以 sizeof 查询),并且并不是计算字母,记录的是 ascii 码。
查看对应的 ascii 码:输出的时候加上(int),比如这样
cout << ch << endl;
cout << (int)ch << endl;
a的 ascii:97
A 的 ascii:65
当然,正是因为char
只能表示一个字母,所以产生了可以存放小整数的方法。(它的占用只有 1 字节。相比于short
,还省一个字节的空间)
#include <iostream>
using namespace std;
void main()
{
char ch = 'a';
int a = ch;
cout << a << endl;
}
反过来,用数字也可以显示字母:
#include <iostream>
using namespace std;
void main()
{
int a = 0;
cin >> a;
char ch = a;
cout << ch;
}
运行:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)
97
a
当然,使用cout.put()
函数也是可以的。cout.put()
函数是什么:这个函数只会显示一个字符。比如说这样:(100 表示 d)
#include <iostream>
using namespace std;
void main()
{
int a = 100;
cout.put(a);
}
如果打算使用char
来表示小整数,那么请注意它的限制是(0,255)
。如果需要表示负数,可以使用signed
修饰char
。比如说这样signed char a = -10;
字符常量只可以使用单引号(''
),而字符串常量使用双引号(""
)。比如说字符A
,它的 ASCII 为 65。在 ASCII 上'A'
只是65
的另外一种表达方式。
char A = 'A';
但是,"A"
不是字符常量,这是两个字符(一个字符A
和标记结尾的\0
)。并且,"A"
在 c++中表示的是字符串所在的内存地址。所以编译器禁止字符使用双引号(""
)。
在c++11 中,新增了char16_t
char32_t
。
char16_t ch1 = u'q'; //113
char32_t ch2 = U'/U0000222B'; //我报错
:-)