char* 与 const char*(再次!!!)

cgt*_*gts 0 c++ compiler-errors constants char visual-studio

我能找到的每个参考资料都表明我可以使用 char* cName = "Some Text",但我的 VS2019 抱怨。

我在 Stackoverflow 上看到了很多使用这种语法的例子,很多 youtube 视频也演示了它的用法。

谁能解释为什么我看到我的错误(见下图)

问题示例

son*_*yao 5

从 C++11 开始你就做不到了。c 样式字符串文字的类型是const char[](array of const char),并且可以衰减到const char*(pointer to const char) 但不能衰减到char*(pointer to non-const char)。

在 C 中,字符串文字是 类型char[],可以直接分配给 a (non-const) char*。C++03 也允许它(但不推荐使用它,因为文字const在 C++ 中)。C++11 不再允许这种没有强制转换的赋值。