【发布时间】:2015-08-28 20:55:50
【问题描述】:
如何在 C++11 中初始化 c 字符串?
我试过了:
char* foo = {"bar"};
但我明白了:
ISO C++11 does not allow conversion from string literal to 'char *
【问题讨论】:
如何在 C++11 中初始化 c 字符串?
我试过了:
char* foo = {"bar"};
但我明白了:
ISO C++11 does not allow conversion from string literal to 'char *
【问题讨论】:
因为它必须是指向const的指针:
const char* foo = "bar";
在 C++11 之前,您可以将 foo 简单地设为 char*,尽管自 C++03 以来已弃用。但是 C++11 删除了弃用并简单地使其非法。
【讨论】:
正确的做法是;
char const* foo = {"bar"};
// ^^^^^ added const
不推荐使用旧的 C 样式(非 const),现在已从 C++11 中删除。
【讨论】: