const常指针的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 05:46:41
#include<iostream.h>
void main()
{char * const name="name";//常指针
name[1]='e';
cout<<name[1];
}
为什么运行出错,不能输出?
常指针指向的内容可以改的,但是不能指向另一个常量,就是不能再有name=“king”,但是name[1]='e';是可以的,而且编译也没错,为什么就是不能输出?

注意:"name"是一个字符串常量!!!!!
指向字符串常量的指针,不管是不是常指针,都是不能改变其内容的。不要问为什么,因为那是常量!!!!

楼主你有没有仔细看我的回答啊??

这个你不用常指针一样会错。信不信?
你改成char * name="name";试试看。

因为"name"是一个字符串常量。你用name指向它,企图修改它的值,这是不行的。

你可以改成:char string[]="name",* const name=string;//常指针 就行了