字符数组
字符串常量是一个字符数组,例如:
“i am a string”
在字符串内部,字符数组以空字符 '\0' 结尾,程序可以通过检查空字符找到字符数组的结尾。字符串常量占据的存储单元数也因此比双引号内的字符数大 1。
字符指针
char *p;
p = "now is the time";
将一个指向该字符数组的指针赋值给 p。(C语言没有提供将整个字符串作为一个整体进行操作的运算符)
下面两个定义之间有很大差别:
char a[] = "now is the time"; //定义一个数组
char *p = "now is the time"; //定义一个指针
a是一个仅仅足以存放初始化字符串以及空字符 '\0' 的一维数组,可以修改数组中的单个字符。
p是一个指针,其初值指向一个字符串常量,之后可以修改它指向其它字符串,可以输出它的内容中的某个字符,但修改不了它指向的字符串的内容。