char *p="girl";的含义是定义字符型指针变量 p,p 的值是字符串"girl"。请问这句话的说法是正确的吗?
(2) 赋值方式。可以对字符指针变量赋值,但不能对数组名赋值。
可以采用下面方法对字符指针变量赋值:
char *a;//a为字符指针变量 a="I love China!"; //将字符串首元素地址赋给指针变量合法。但赋给a的不是字符串,而是字符串第一个元素的地址
不能用以下办法对字符数组名赋值:
char str[14]; str[0]='I'; //对字符数组元素赋值,合法 str="I love China!"; //数组名是地址,是常量,不能被赋值,非法
(3)初始化的含义。对字符指针变量赋初值:
char *a="I love China!"; //定义字符指针变量a,并把字符串第一个元素的地址赋给a 等价于 char *a; //定义字符指针变量a a="I love China!"; //把字符串第一个元素的地址赋给a 而对于数组的初始化: char str[14]="I love China!"; //定义字符数组str,并把字符串赋给数组中各元素 不等价于 char str[14]; //定义数组str str[]="I love China!"; //企图把字符串赋给数组中各元素,错误
数组可以在定义时对各元素赋初值,但不能用赋值语句对字符数组中全部元素整体赋值。