【问题标题】:How do I create an array of pointers of type char C++?如何创建 char C++ 类型的指针数组?
【发布时间】:2020-03-07 01:25:21
【问题描述】:

我对指针不是很熟悉,但是我有一个任务要求我创建一个 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++ 03 允许将字符数组文字分配给 char *,但已被弃用,现在不允许。你的 C++ 书(和课程)已经过时了。

标签: c++ arrays pointers char


【解决方案1】:

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

这里的解决方案是将seasons的类型更改为const char *[],以制作指向这些const char数组的指针数组:

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

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

【讨论】:

猜你喜欢
  • 2015-04-08
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多