表示字符串和字符串I/O
字符串是以空字符(\o)结尾的char类型数组。
在程序中定义字符串
字符串字面量(字符串常量)
用双引号括起来的内容称为字符串字面量,也叫哦做字符串常量。双引号中的字符和编译器自动加入末尾的\o字符,都作为字符串储存在内存中,所以''i am a symbolic stringconstant,"是字符串字面量。
字符串数组和初始化
定义字符串是,必须让编译器知道需要多少空间。一种方法是用足够空间的数组储存字符串。在下面的生命中,用指定的字符串初始化数组m1:
const char m1[40]="limit yourself to one line's worth";
const表明不会更改这个字符串。。这种形式初始化比标准的数组初始化形式简单地多
ocnst char m1[40]={ 'l','i','m','t','','y','o'.'u','r','s','e'.'i'.'f''
' ' ,'t','t','o',...........,'\o'}
注意最后的空字符。没有这个空字符,这就不是一个字符串,而是一个字符数组。
在指定数组大小时,要确保数组元素个数至少比字符串长度多以(为了容纳字符。)所有未被使用的元素都被自动初始化为0(这里的0值得是char形式的空字符,不是数字字符0),
让变异我初始化字符数组的大小很合理,因为处理字符串的函数通常都不知道数组的大小,这些函数通过查找字符串末尾的空字符不确定字符串在何处结束
让编译器计算数组的大小只能用在初始化数组是。如果创建一个人稍后再填充的额数组,就必须在声明时指定大小。声明数组是,数组大小必须是苛求值得整数。在C99新增边长数组的大小必须是指整数型常量,包括有整形常量组成的表达式。
int n=8; //有效
char ookies[1];
char cakes[2+5]; //有效,数组大小是整数型的表达式
字符数组名和其他数字名一样,是该数组首元素的地址。