关于char指针问题

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:44:28
char* a = "asdfasdfasdfasd";
为什么 a[7] = "e"; 有错误 说一个什么地址不能written;

因为你的指针指向的是字符串常量,常量是不能修改的,这你应该知道吧!

你定义的是指针*a,a只指向这个数组的首地址撒
a[7];可以访问第7个元素,但你不能为他赋值撒
指针所指的只为内存地址

楼主你可这样为他赋值
a[7]='e'。用单引号。表示对这个地址赋一个值

而你用a[7]="e"。这里的是字符串了。
相当于又要重新开一个地址,一个数组。
所以当然不能写了

char *a="asdfasdfasdfasd";
相当于a[16]="asdfasdfasdfasd";
a[]中的每个元素都是字符,不是字符串的
应该a[7]='e'

因为这是一个常量字符串,不可改