*字符数组*

字符数组与字符指针变量的区别:

char *a;
a = "I love China!"; //这是合法的,将I love China!的首字母首地址赋值给指针变量a

然而:

char str[50];
str = "I love China!"; //这是非法的,不太容易想

以下也是错误的:

char *a; 
scanf ("%s", a); //非法的,企图从键盘输入一个字符串并使a指向它, 这是容易理解的,也未开辟空间存放它

只有这样才是正确的:

char *a, str[10];
a = str;
scanf ("%s", a); //从键盘输入字符串存放到a指向的一段内存中

 字符数组中各元素的值是可以改变的,可以再对其赋值,但是字符指针指向的字符串常量的值是不能改变的,因为字符串常量存放在文字常量区,不能被更改。

原文地址:https://www.cnblogs.com/gzl0928/p/7768268.html