C++ 如何使数组中的每个数字都像const char*argv[]那样存储一个字符串?

C++ 如何使数组中的每个数字都像const char*argv[]那样存储一个字符串?,c++,arrays,C++,Arrays,我想制作一个数组,每个数组数可以存储一个字符串,与const char*argv[]的作用相同 对于下面的代码 cout << array[0] << endl; cout << array[1] << endl; 所以数组中的每个数字实际上都存储一个字符串。我想知道怎么做,我应该为数组设置什么类型。您可以形成指向char的指针数组 const char* array[] = { "David",

我想制作一个数组,每个数组数可以存储一个字符串,与const char*argv[]的作用相同

对于下面的代码

cout << array[0] << endl;
cout << array[1] << endl;

所以数组中的每个数字实际上都存储一个字符串。我想知道怎么做,我应该为数组设置什么类型。

您可以形成指向char的指针数组

const char* array[] = { "David",
                        "Jason" };
或者在动态分配的内存中

char** array = new char*[2];
array[0] = "David";
array[1] = "Jason";
我应该为数组设置什么类型

好的,如果您想要与
argv
相同的行为,那么与
argv
相同的类型是一个选项

然而,现实地说,总的来说,在2015年创建字符串数组的唯一可接受的方法是:

std::array<std::string, N> myArray;
std::array myArray;

其中
N
是所需的元素数。

使用
char**
,与
argv
相同。换句话说,如果你想要同样的东西,那么使用它。在将来,你应该避免问这样的基本问题,比如“我怎么做数组”,而不是读你的入门C++书籍。@ SkyPyJo:这是误导。它表明
char**
是一个数组。事实并非如此。
std::array<std::string, N> myArray;