字符数组与字符指针变量的区别:
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指向的一段内存中
字符数组中各元素的值是可以改变的,可以再对其赋值,但是字符指针指向的字符串常量的值是不能改变的,因为字符串常量存放在文字常量区,不能被更改。