主要内容 #
1. char 的数值 #
从之前课程的学习中,我们总结一下对 char 的一些认识;
有符号:char
无符号:unsigned char
- char 和 unsigned char 的大小都是 1 字节(Byte)
 - unsigned char 本身为一个整型,表示范围为 0 ~ 255
 
一般,我们更加习惯写作:0x00 ~ 0xFF
- char 本身为一个整型,表示范围为 -128~127
 
我们一般也写作:0x00 ~ 0xFF
小思考:
为什么 char 的表示范围是 -127~126,unsigned char 的表示范围是 0~255,
而我们在写十六进制的表示范围时,都写作了 0x00~0xFF ?
答案:
十六进制,反映的是内存中实际的“有电/没电”状态;
十进制,反映的是我们可以直观理解的数值范围。
下面,我们来使用一下 char,请看代码
#include <iostream>
using namespace std;
int main()
{
    // 定义、初始化、赋值
    char da;
    da = 5;
    char shi(6);
    char ma = 8;
    
    return 0;
}
这些是常规用法,现在来看一下
#include < iostream >
using namespace std;
int main()
{
    // 定义、初始化、赋值
    char da;
    da = 'A';
    char shi('b');
    char ma = 'C';
    
    return 0;
}
C++ 中,char 除了可以表示一个数值以外,还被用来表示“字符”。
名词解释:“字符”
字符,其实就是一个英文字母、数字、特殊符号。
这里有两个关键词:
- 一个
 - 英文字母、数字、特殊符号
 
汇总如下:
2. ASCII #

一般,我们需要重点关注的是“ASCII 打印字符”。
请注意:为了区别,C++ 使用单引号(’)来表示字符常量(换了个说法,其实也就是字符)。
请看代码:
#include < iostream >
using namespace std;
int main()
{
    char da;                        // 赋值为字符 'A'
    da = 'A';
    char shi;
    shi = 65;                       // 赋值为数字 65
    cout << "da  = " << da  << endl; // 输出字符变量
    cout << "shi = " << shi << endl; // 输出字符变量
    
    return 0;
}
是不是发现,输出为
da = A shi = A
对于字符变量的赋值,请注意:
- 字符变量,使用字符赋值,字符会转化成对应的数值,存储到变量中。
 - 字符变量,使用数值赋值,数值将直接,存储到变量中。
 - 字符变量,使用数值赋值,数值范围不可超过 [0, 127]。
 
对于字符变量的输出,请注意:
- 字符变量,输出时,存储的数值,将转化成 ASCII 中对应的字符,然后输出到屏幕。
 
这就体现了 C++ 中, char 类型的特殊性。
这里请注意,char 和 unsigned char 都可以使用,但是必须注意取值范围。
- [0, 127]
 
超出范围的赋值,不会报错,但是它的值就不确定了。请特别注意。
#include < iostream >
using namespace std;
int main()
{
    char da;                              // 赋值为字符 'A'
    da = 'A';
    unsigned char shi;                    // 可以使用 unsigned char
    shi = 65;                             // 赋值为数字 65
    cout << "da  = " << da  << endl;       // 输出字符变量
    cout << "shi = " << shi << endl;       // 输出字符变量
    int ma;
    ma = da;                   
    cout << "da  = " << ma  << endl;      // 输出字符变量的数值
    cout << "da  = " << int(da)  << end; // 输出字符变量的数值,强制类型转化。
    return 0;
}
3. 小结 #
- C++ 使用单引号(’)来表示字符常量,比如 ‘A’。
 - 字符变量,使用字符赋值,字符会转化成对应的数值,存储到变量中。
 - 字符变量,使用数值赋值,数值将直接,存储到变量中。
 - 字符变量,使用数值赋值,数值范围不可超过 [0, 127]。
 - 字符变量,输出时,存储的数值,将转化成 ASCII 中对应的字符,然后输出到屏幕。
 
习题 #
