从本文开始,内容基于谭浩强C程序设计第五版,因此,和前两讲(基于第二版)的目录对不上。
对前文常量的一种补充。
字符常量有两种表现形式:
(1)普通字符
用单撇括号括起来的一个字符,如:‘a’、‘Z’、‘3’、‘?’、‘#’。
一般是按其 ASCII 代码存储。如:字符’a’的ASCII代码是 97,因此在内存中存放的是 97 的二进制形式。(同学们这里就可以写一个简单的程序测试一下,实践是检验真理的唯一标准)。
#include <stdio.h>
int main(void)
{
char c1,c2;//定义两个字符型变量
c1 = 'a';
c2 = 'A';
printf("字符a=%d,字符A=%d",c1,c2);
return 1;
}
字符a=97,字符A=65
(2)转义字符
以“\”开头的字符序列。如在 printf 打印函数中经常出现 ‘\n’ 代表一个换行符。‘\t’ 代表一个 Tab 制表位置(1个Tab占用8列)。
它是一种无法显示的“控制字符”。
转义字符表不用背,常用的几个用的多了也就记住了,不常用的用时再查阅即可。
字符与字符代码不是任意写一个字符,程序都能识别的,例如圆周率 π 在程序中就不能识别。目前大多数系统采用的是 ASCII 字符集,一共是127(二进制 7 个全 1)个字符,因此,用一个字节(8位)存储即可。(ASCII 表也是不要大家背的,用时查表即可)。
字符变量是用类型符 char 定义。
#include <stdio.h>
int main(void)
{
char c = '?'; //定义字符变量c,并赋初始值为字符'?'
printf("%d, %c",c,c);
return 1;
}
63, ?
字符型数据的存储空间和值的范围
类型 | 字节数 | 取值范围 |
---|---|---|
[signed] char(有符号字符型) | 1 | -128 ~ 127,即 -27 ~ (27-1) |
unsigned char(无符号字符型) | 1 | 0 ~ 255,即 0 ~ (28-1) |
本节完