c++指针和字符串的问题 紧急!!!!!!!!! 高手请进

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:40:09
char *a="abcdefg";
cout<<a[0]; //没问题可以输出
a[0]='b'; //为什么会显示不能访问???

你对char *型的a 进行"abcdefg"的赋值,"abcdefg"存在静态区,是常量,不能改变,所以下面的a[0]='b'是错的,它在试图改变常量的值。

改成*(a+0)='b'就可以了

因为a是一个指向常量字符串的指针,所以你更改它的内容会报错
如果a指向的是一个字符数组,像你这样用就没有问题。

char *a定义的是一个字符指针,指向了常量"abcdefg",所以不能修改
你可以这么定义char a[] = "abcdefg";这样就是变量定义了