char * vs const char *(Again !!!)

问题描述 投票:0回答:1

我可以找到的每个参考文献都建议我可以使用char * cName =“ Some Text”,但是我的VS2019抱怨。

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

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

Example of issue

c++ visual-studio compiler-errors char const
1个回答
2
投票

自C ++ 11起,您就无法这样做。 c-style string literal的类型为const char[]const char的数组),并且可能会衰减为const char*(指向const char的指针),但不会衰减到char*(指向非常量char的指针)。

在C中,字符串文字的类型为char[],可以直接分配给(非常量)char*。 C ++ 03也允许它(但已弃用,因为文字在C ++中为const)。 C ++ 11不再允许不进行强制转换的此类分配。

© www.soinside.com 2019 - 2024. All rights reserved.