C++:cannot convert ‘const char (*)[5]’ to ‘char*’
问题
#includeusing 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<