【发布时间】:2017-08-05 22:50:33
【问题描述】:
为什么我可以更改指针p 中的元素,但不能更改指针r 中的元素?我猜它必须与指针的属性有关。
将p[2] 更改为w 会成为再见。更改 r 会使代码崩溃。
p的地址是0x69fee0。
r的地址是0x69fedc。
两者在 for 循环中具有相同的输出(除了单词“再见”结束后的垃圾数据)。
int main()
{
char q[]="Goodbye";
char* p = q;
char* r = "Goodbye";
cout<<"Address of p: "<<&p<<endl;
cout<<"Address of r: "<<&r<<endl;
for(int i = 0; i<10; i++)
{
cout<<"P["<<i<<"]: "<<p[i]<<endl;
cout<<"R["<<i<<"]: "<<r[i]<<endl;
}
p[2]='w';
cout<<p<<endl;
r[2]='w';
cout<<r<<endl;
return 0;
}
【问题讨论】:
标签: c++ arrays string pointers char