字符串常量是用一对双撇号括起来的字符序列;而字符常量是用一对单撇号括起来的单个字符。如'a'是字符常量,“a”是字符串常量。
那么‘a’和“a”有什么区别呢?
C语言编译系统在处理字符串时,在每一个字符串常量的结尾加上一个字符‘\0’,作为字符串结束的标志。‘\0’是一个ASCII码为0的字符,是“空操作字符”,它不引起任何控制操作,也不是一个可以显示的字符。如果有一个字符串“Hello World!”,实际上它在存储单元中的情况是:
H | e | l | l | o | W | o | r | l | d | ! | \0 |
注意,在写字符串的时候不必在末尾加'\n',否则会起到画蛇添足的作用。‘\n’是系统自己加上去的。因此对于字符串常量“a”,它实际上包含2个字符:‘a’和‘\0’;而字符常量‘a’只包含一个字符即‘a’。
在C语言中没有专门的字符串变量,不能讲一个字符串存放在一个变量中。如果想将一个字符串存放在内存中个,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。