繁体   English   中英

如何在 C++ 中创建一个指针数组

[英]How do I create an array of pointers in c++

我正在尝试使用我在课堂上的教授示例创建一个指针数组。 我似乎无法让它工作。

char * ISBN[] = {
    "1-214-02031-3",
    "0-070-21604-5",
    "2-14-241242-4",
    "2-120-12311-x", 
    "0-534-95207-x",
    "2-034-00312-2",
    "1-013-10201-2",
    "2-142-1223",
    "3-001-0000a-4",
};

这是我的教授声明一个 char 类型指针数组的例子。 他说这是我们应该为任务做的事情。 可悲的是,我收到错误 - 错误(活动)E0144 类型“const char *”的值不能用于初始化类型为“char *”的实体 -

我之前问过这个问题,有人说 char * 已被弃用。 但是教授说这是我们应该在作业中使用的声明。 我将如何尝试弄清楚如何让这个数组工作? 这个声明到底在做什么?

const char * ISBN[] = {
    "1-214-02031-3",
    "0-070-21604-5",
    "2-14-241242-4",
    "2-120-12311-x", 
    "0-534-95207-x",
    "2-034-00312-2",
    "1-013-10201-2",
    "2-142-1223",
    "3-001-0000a-4",
};

我想我只需要在char *前面添加const 我还有很多东西要学。 谢谢大家。

这仅仅是因为您试图将字符串文字分配给 char 指针。在 c++ 中,字符串文字是 const char 指针,因为字符串文字存储在只读内存中。另一个原因是为了优化编译器(仅存储一个文字实例在源代码中重复多次)。 所以你会得到多个指向同一内存的指针,而不是每个指针都占用一个单独的内存块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM