字符类型
一、什么是字符类型
C语言使用char类型来表示一个字符,并且C语言是没有字符串类型的,我们通常使用字符数组来表示字符串。
每个字符变量,在16位、32位或64位编译器中都是
占用 1 个字节(=8位)
。
二、普通表达
字符型变量赋值时,需要用一对英文半角格式的单引号(
''
)把字符括起来。
例如:
char c = 'A'; // 定义一个char类型的变量c,并将'A'赋值给c
三、ASCll码值
1.什么是ASCll码
ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了127个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0,也就是说,ASCII虽然用8位二进制编码表示字符,但是其有效位为7位。
常见的ASCII值与对应的字符如下:(ASCII数值范围为0-127)
2.实例
Ⅰ.两个字符类型可以做数学运算
char类型中的每个字符对应着一个ASCII码,因为ASCII码是一个数值,所以char类型的变量可以参与+-*/的运算。
例如:
char a = 'a'; // ASCll码值为:97
char b = 'b'; // ASCll码值为:98
printf("%d", a + b); // a + b 结果为 195
Ⅱ.字符’65’和整数65
前面我们已经了解了ASCll表,所以很显然,字符’65’就是字符’65’,而整数65还有另外一个身份,那就是字符’A’
char a = '65';
char b = 65;
printf("%c", a); // 打印为 65
printf("%c", b); // 打印为 A
再比如:
char c='?'; // 定义c为字符型变量并使初值为字符'?'。'?'的ASCII代码是63,系统把整数63赋给变量c
printf("%d %c\n",c,c); // 用"%d"格式输出十进制整数63,用"%c"格式输出字符'?'
四、signed 和 unsigned 修饰
根据C90标准,C语言允许在关键字char前面使用signed或unsigned
signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255
C 语言规定 char 类型默认是否带有正负号,由当前系统决定,这一点与 int 不同, int 等同于 signed int 。这就是说, char 不等同于signed char ,它有可能是 signed char(范围-128 到 127) ,也有可能是 unsigned char (范围0 到255)。不管是哪种,范围都正好都能覆盖 0 到 127 的 ASCII 字符范围。
五、转义字符
使用反斜杠\
来转义
字符形式 | 含义 |
---|---|
\n | 换行符(光标移动到下行行首) |
\t | 水平制表符,光标移到下一个Tab位置 |
\' | 单引号字符 ’ |
\" | 双引号字符 " |
\\ | 反斜杠字符 ’\’ |
\r | 回车符,光标移到本行开头 |
\0 | null 字符,代表没有内容。注意,这个值不等于数字0。 |
\b | 退格键,光标回退一个字符,但不删除字符 |