【发布时间】:2015-05-12 17:47:26
【问题描述】:
在 C++ 中,这是用字符串初始化 char 数组的好习惯吗? 如:
char* abc = (char *) ("abcabc");
我在同事的代码中看到了很多这样的内容。我应该将其更改为正确的做法吗? 比如
std::string abc_str = "abcabc";
const char* abc= abc_str .c_str();
【问题讨论】:
-
我没有看到 char 数组。
-
@BufBills 好吧,这对我来说是个新闻。
-
我向你保证@T.C.比你知识渊博。
-
您的第一个示例很糟糕,因为您正在从字符串文字中丢弃常量。你的第二个例子很糟糕,因为如果
abc_str被修改,abc可能指向无效内存。 -
旁注:请不要转换 const 字符串字面量使用:
const char* s = hello"(非 const 已弃用)
标签: c++ string declaration c-strings string-literals