C++:cannot convert ‘const char (*)[5]’ to ‘char*’


问题

#include 
using namespace std;
int main()
{
    char * p=&"good";
    cout<<p;
}

报错:

error: cannot convert ‘const char (*)[5]’ to ‘char*’ in initialization

原因

如果只给出一个字符串,那么会默认为它的类型是 const char *,是一个常量类型。

而指针无法指向一个常量的地址,所以不能这样写。

解决方法

①定义一个字符数组,让p指向它的首地址:

char c []="good";
char *p=c;
cout<

②在声明指针时就让它指向该字符串

char *p="good";
cout<