char name[] = "it";
name[0] = "T";
这是字符串变量,可以赋值;
上面那个是字符数组,也就是char name[] = {'i', 't', '\0'};
char *name = "it"; 这个是把常量字符串"it"首地址赋给name。"it"在常量区。
*name = "T";
可以写成name = "T"; 让name重新指向另一个字符串常量。
*name = "T"等于说是试图修改常量字符串"it"首字符,所以不可以。
而且双引号"T"是字符串多个\0,有两个字符,也不可能存进只有一个字符的*name。 |