我尝试一次分配两个c字符串:
char **pair = {"name","joe"};
但我收到错误消息:
'initializing' : cannot convert from 'const char [5]' to 'char **'
但是我觉得之前有类似的东西对我有用吗?
答案 0 :(得分:8)
你声明一个指向指针的指针,但是初始化程序是指针的数组:
const char *pair[] = { "name", "joe" };
如上所述,我在声明中添加了const
关键字。这是因为指针是指向字符串文字的指针,文字是常量且无法更改。添加const
有助于程序员不要错误地对数组中的字符串进行更改。
答案 1 :(得分:2)
使用C ++工具,它将为您节省痛苦的世界:
vector<string> field = { "name", "joe" };
虽然你可能需要:
pair<string, string> field("name", "joe");
或者更好,可能:
struct Person {
Person(const string& name) : name(name) {}
const string name;
};
Person boss("joe");
答案 2 :(得分:0)
Joachim方法创建只读字符串。这就是你如何创建一个const字符串文字数组。
另一种方式,
// MAX_LEN being the max string length.
char pair[][MAX_LEN] = {"name","joe"}; // This makes pair read-writeable,
答案 3 :(得分:0)
这里给出的所有答案都是正确的。选择什么取决于背景:
如果不是1或2,请选择彼得伍德。注意
vector<string> field = { "name", "joe" };
需要C ++ 11
答案 4 :(得分:0)
const char * pair [] = {“name”,“joe”};
这是最好的解决方案