我目前正在分析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*
以上?
谢谢, Udhai
答案 0 :(得分:3)
指针不是数组,那你为什么要假装呢?你可以这样做
string strVal[3] = {"Good","Better","Best"};
string* strPtr = strVal;
答案 1 :(得分:0)
这有效:
std::string* strPtr{new std::string[3]{"Good","Better","Best"}};
这也编译
std::string* strPtr{(std::string[3]){"Good","Better","Best"}};
但是将指针绑定到临时指针,所以请不要这样做。
答案 2 :(得分:-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 = strVal;
如果你想指向一个字符串数组的开头的指针。