3

我目前正在分析 char 和 string 数据类型。对于char数据类型,以下代码片段适用:

char value = 'a';
char value1[] = "Good";
char* value2 = "Good";

对于字符串,

string strValue = "Good";
string strVal[3] = {"Good","Better","Best"};

但是下面的赋值会引发编译错误:

“错误:标量对象 strPtr 在初始化程序中需要一个元素”

string* strPtr = {"Good","Better","Best"}

string*那么,最初如何给上面赋值呢?

谢谢, 乌德海

4

3 回答 3

3

指针不是数组,那么你为什么要假装不然呢?但是你可以这样做

string strVal[3] = {"Good","Better","Best"};
string* strPtr = strVal;
于 2012-07-27T06:07:04.480 回答
0

这有效:

std::string* strPtr{new std::string[3]{"Good","Better","Best"}};

这也编译

std::string* strPtr{(std::string[3]){"Good","Better","Best"}};

但将指针绑定到一个临时的,所以请不要这样做。

于 2012-07-27T06:09:33.307 回答
-1

我想你指的是std::string.

正确的方法是

std::string *s(new std::string);
// or
std::string *s = new std::string;

如果你想要一个指向字符串的指针并且

std::string s_arr[3] = {"Good","Better","Best"};
string* str_p = s_arr;

如果你想要一个指向字符串数组开头的指针。

于 2012-07-27T06:07:22.773 回答