为什么之后不能设置const指针?

dsp*_*der -8 c++ pointers const function

我知道这可能是一个微不足道的问题.在声明之后无法设置const指针的逻辑是什么?这并不是说分配内存会改变const引用的起始地址.那么为什么不能......

int* const p;
p = new int [10];
Run Code Online (Sandbox Code Playgroud)

...完成...这也禁止将const指针传递给函数?

Lig*_*ica 9

这是完整的目的const.

const 代表"常量",表示无法分配对象.

如果您希望指针成为变量,请不要成功const.

我怀疑你期望你的作业被允许,因为它是第一次分配给那个对象.你错了!这是初始化的目的,您目前没有使用它.

我猜你打算写:

int* const p = new int[10];
Run Code Online (Sandbox Code Playgroud)

但我担心你在这里有更多根本的误解.例如:

这并不是说分配内存会改变起始地址

是的,绝对,完全会.

当你的p存在,它有一个未指定的价值.它的值不是您可以使用的"起始地址".

然后你分配给它(虽然你应该初始化).它取值等于返回的指针new.该指针与代码中的任何内容无关.