首页 > 解决方案 > char* 与 const char* (再次!!!)

问题描述

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

我在 Stackoverflow 上看到了许多使用该语法的示例,许多 youtube 视频也展示了它的用法。

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

问题示例

标签: c++visual-studiocompiler-errorscharconstants

解决方案


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

在 C 中,字符串文字属于 类型char[],可以直接分配给 (non-const) char*。C++03 也允许它(但不推荐使用它,因为 C++ 中的文字const)。C++11 不再允许在没有强制转换的情况下进行此类分配。


推荐阅读