为什么不允许将 const char * 赋给 const 变量?

Use*_*ser 1 c++ constants char

char* name;
const char* _name = "something";
name = _name; // conversion from const char * is not allowed
Run Code Online (Sandbox Code Playgroud)

我知道它在 C++ 中已被弃用,但我想知道为什么......

为什么C++禁止name指向某些文字_name指向?

abe*_*nky 5

因为name是非常量,这意味着您可以更改值。

例如:

*name = 'S'; // Change from "something" to "Something"
Run Code Online (Sandbox Code Playgroud)

_name已声明const,这意味着您无法更改它。

您不能将固定的常量数据分配给不同的变量;这就是说“如果你改变这个就可以了”。

  • 从技术上讲,“_name”并未声明为 const,您可以更改它。您无法更改的是“_name”指向的数组。 (2认同)