charstr1="abcde"和charstr2[]="abcde"的区别
1.首先我们需要了解它们分别代表着什么
char *str1 = “abcde”(此时定义的为字符串常量)
char *str2[] =“abcde”(此时定义的为字符数组)
str1是一个指针,其初值指向一个字符串常量,其可以被修改以指向其他地址,但无法修改字符串的内容
str2[]是一个数组,存放初始化字符串及’\0’的一维数组,其始终指向同个存储地址,但可修改字符串内容
2.实际应用中的不同点
(1)如果我们想将“abcde"中的’a’修改为’x’,我们可能会这样做
str1[0]=‘x’//error
str2[0]=‘x’//ok
原因在于str1为指针只能改变其指向地址,str2为数组可改变其内容