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

问题

#include <iostream>
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<<p;

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

char *p="good";
cout<<p;

 

posted @   ShineLe  阅读(1223)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2021-05-24 QT:Qt Creator中创建的各种项目说明
2021-05-24 QT:QT Creator下载安装
2019-05-24 Python:取整函数、四舍五入
点击右上角即可分享
微信分享提示