2.7 字符串型常量

字符串型常量是由一对双引号括起来的字符序列。例如,"How do you do."、"CHINA"、"a"和"$123.45"是合法的字符串型常量,我们可用语句printf("How do you do.")输出一个字符串。但要注意的是,'a'是字符型常量,而"a"是字符串型常量,二者是不同的。

例如,如果先用语句char c定义字符型变量c,后令c="a"或c="CHINA",那么这样的赋值都是非法的,原因是不可以将字符串型常量赋值给字符型变量。C语言中没有定义字符串型变量的关键字,介绍字符数组时我们将详细讲解如何存放字符串。

C语言规定,在每个字符串型常量的结尾加一个字符串结束标志,以便系统据此判断字符串是否结束。C语言规定以字符'\0'作为字符串结束标志。

例如,字符串型常量"CHINA"在内存中的存储结果如图2.7.1所示,它占用的内存单元不是5个字符,而是6个字符,即大小为6字节,最后一个字符为'\0'。然而,在输出时不输出'\0',因为'\0'无法显示。

img

图2.7.1 字符串型常量"CHINA"在内存中的存储结果