为字符串指针赋值

Assigning values to a string pointer

本文关键字:赋值 指针 字符串      更新时间:2023-10-16

我目前正在分析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*赋值呢?

谢谢,乌海

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

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

这是有效的:

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

这也编译

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

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

我想您指的是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;

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