字符数组与字符串常量的区别
字符串常量:
char *str1='abcde';
字符数组
char str2[]='abcde';
之后若调用str1和str2并改变二者的值
调用str1并重新赋值
str1[0]='x';//error
原因是str1实际上在定义是已经被设置为一个数组指针,其本质是指针,只是指向‘abcde’的地址,str已经是一个常量,且常量不能被修改或者赋值,所以赋值失败
调用str2并重新赋值
str2[0]='x';//OK
原因是str2实际上在定义是已经被设置为一个数组,同时保存了‘abcde’的字符串变量,且变量可以被修改或者赋值,所以赋值成功