字符串常量是双引号括起的任意字符序列。如:
"Hello World"
"WangPing"
"Please enter your full name:"
在字符串常量中,显然不能直接写双引号,因为这将被认为是字符串的结束。转义序列在字符串常量中要包含双引号,需要用“\"”表示。如:
"Hello \"Accp\""
字符串是与字符数组关系非常密切的概念。对程序中的字符串常量,系统将用字符数组的形式存储它们:分配连续的若干存储单元,顺序存入字符串中的各个字符,每个字符占一字节的内在单元。与字符数组不同的是:在存完字符串常量的所有字符之后,还要另存一个空字符'\0'作为结束的标志,空字符是ASCII码值为0的字符,C语言中用'\0'标识字符串的结束,所以也称为结束符。如:如果在程序里写了字符串:
"Hello"
虽然只有5个字符,在内存中却需要占用6个字节存储,其中'\0'表示空字符。存储情况如:
borderColor=#000000 cellSpacing=0 cellPadding=0 width="100%" bgColor=#ffffff border=1 heihgt="20">
5005 5006 5007 5008 5009 500A
用这种方式表示字符串是为了处理方便。与基本类型的数据不同,不同的字符串可能有不同长度。在这种情况下,有了字符串末尾的空字符,处理字符串的程序就可以顺序检查,遇到空字符就知道字符串结束了。虽然空字符不是字符串内容的一部分,但却是字符串表示中不可缺少的部分。在C语言中没有专门的字符串变量,通常用一个字符数组来存入一个字符串。字符数组和字符串的区别是:字符串的末尾有空字符'\0'。
根据字符串存储形式的规定,只要在数组里顺序存入所需字符,随后存一个空字符,这个字符数组里的数据就有了字符串的表现形式,这个数组也就可以当作字符串使用了。在这种情况下,也可以说这个数组里存了一个字符串。如:
char name[15]={'Y','a','n','g','L','i','\0'};
与
char name[15]="YangLi";
等同。