C++中的常量指针问题,下面这段代码为什么会运行出错??

#include
#include
using namespace std;
int main()
{
char* const pc="abcd";
*(pc+2)='x';
//pc="asd";
//puts(pc);
return 0;
}

这里跟指针本身是否const没有关系,字符串常量是不可更改的。你可以试试

char tmp[] = "abcd";
char* const pc = tmp;
*(pc+2) = 'x';

*pc为常量不能改变它的值

pc指针指向的字符串"abcd"是常量字符串,所以不可以修改。