首页 > 解决方案 > 如何创建 char C++ 类型的指针数组?

问题描述

我对指针不是很熟悉,但我有一个任务要求我创建一个 char 类型的指针数组。我似乎无法让代码运行。

#include <iostream>
using namespace std;
int main() {

    int n = 0;
    char *seasons[] = { "Winter", 
                        "Spring",  
                        "Summer",
                        "Fall"};


    cout << seasons[n] << endl;

    return 0;
}

我从教科书中复制并粘贴了这段代码,但我不断收到数组中字符串的错误。错误为 E0144:“const char *”类型的值不能用于初始化“char *”类型的实体

标签: c++arrayspointerschar

解决方案


我想知道您的教科书制作者是否将现有的 C 代码快速而肮脏地转换为 C++。在 C 中,字符串字面量是类型数组char(即使它们是不可变的),但在 C++ 中,它们是类型数组const char

这里的解决方案是将 的类型更改为seasonsconst char *[]创建指向这些数组的指针const char数组:

const char *seasons[] = { "Winter", 
                          "Spring",  
                          "Summer",
                          "Fall"};

顺便说一句,我也不喜欢你的书using namespace std;。它用整个 std 命名空间污染了全局命名空间,这可能(并且根据我的经验)导致会破坏代码的冲突。


推荐阅读