迷途的启木菌 2020-07-01 17:32 采纳率: 50%
浏览 382
已采纳

指针数组处理字符串(如:char *s[] = { "Hello","World","!" };)Visual Studio 2017无法正常编译 出现错误error C2440: “初始化”: 无法从“const char [6]”转换为“char *”

#include<stdio.h>

int main(void)
{
    int i;
    char *s[] = { "Hello","World","!" };
    for (i = 0; i < sizeof(s); i++)
        printf("%s\n", s[i]);
    return 0;
}

直接给数组指针赋值 char *s[] = { "Hello","World","!" };,这个代码是正确的,使用Visual Studio 2010时能正常运行,但是在Visual Studio 2017中却检测有错误,无法运行,请问是标准或者什么变了吗?原因是什么?怎么解决在Visual Studio 2017运行中出现的这个问题?谢谢!
图片说明

  • 写回答

1条回答 默认 最新

  • qiu_shaofeng 2020-07-01 19:41
    关注

    "Hello","World","!"是常量字符串,加上const符合c语言标准。
    const char *s[] = { "Hello","World","!" };
    for (i = 0; i < sizeof(s)/sizeof(char * ); i++) 得到数组s长度

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 Dkeil5 CT107D单片机的程序编写
  • ¥30 Ubuntu20.04中PVN3D复现过程交叉编译问题
  • ¥15 模拟电路求复阻抗和传递函数,请各位拍照写一下解答过程
  • ¥60 不懂得怎么运行下载来的代码
  • ¥15 CST导出3D模型图为什么和软件显示不一样?
  • ¥15 加热反应炉PLC控制系统设计(相关搜索:梯形图)
  • ¥15 python 用Dorc包报错,我的写法和网上教的是一样的但是它显示无效参数,是什么问题
  • ¥15 经过滑动平均后的一维信号还原用什么结构好呢?
  • ¥15 指定IP电脑的访问设置
  • ¥30 matlab ode45 未发现警告,但是运行出错