关于const char* 与 char*的问题
char *p = new char('p');
const char *cp = "p";
cp = p; // 正确
*cp = ‘c’; // 错误
*p = ‘c’; // 正确
const char *cp 表示一个指向有const限定的char的指针。
char *p 表示一个指向char的指针。
因为cp与p指向的类型相容,并且左边指针指向的类型具有右边指针指向类型的全部限定符,所以可以把p的值赋给cp。
因为cp指向的目标是不允许修改的,所以*cp = 'c'; 报错。
问题来了,p指向的目标和cp指向的目标相同,换句话讲,p指向的目标就是cp指向的目标,那么p指向的目标可以被修改,也就是说cp指向的目标可以被修改了?如果这个逻辑没错,为何*cp='c' 会报错呢?
这个地方一直没有搞明白,还请明白的大侠指点一下,多谢了~~