如何创建一个类型为char C++的指针数组?
我对指针不是很熟悉,但我有一个赋值,它要求我创建一个char类型的指针数组。我似乎无法运行代码如何创建一个类型为char C++的指针数组?,c++,arrays,pointers,char,C++,Arrays,Pointers,Char,我对指针不是很熟悉,但我有一个赋值,它要求我创建一个char类型的指针数组。我似乎无法运行代码 #include <iostream> using namespace std; int main() { int n = 0; char *seasons[] = { "Winter", "Spring", "Summer",
#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 */p>< p>的实体。我怀疑你的教科书制造商是否对现有C代码进行了C++的快速和肮脏转换。在C中,字符串文字是类型的数组,即使它们是不可变的,但是在C++中它们是类型const char的数组。 这里的解决方案是将季节类型更改为const char*[],以生成指向这些const char数组的指针数组:
顺便说一句,我也不喜欢你的书《使用名称空间std;》;。它用整个std名称空间污染了全局名称空间,根据我的经验,这可能会导致冲突,从而破坏代码。C++03允许将字符数组文本分配给char*但已被弃用,现在不允许。你的C++书籍和课程已经过时了。如果我没有记住它,字符串文字的类型是const char []。@ Jording,根据5.5.5P8节,你是正确的。我会更新。
const char *seasons[] = { "Winter",
"Spring",
"Summer",
"Fall"};