dsp*_*der -8 c++ pointers const function
我知道这可能是一个微不足道的问题.在声明之后无法设置const指针的逻辑是什么?这并不是说分配内存会改变const引用的起始地址.那么为什么不能......
int* const p;
p = new int [10];
Run Code Online (Sandbox Code Playgroud)
...完成...这也禁止将const指针传递给函数?
这是完整的目的const.
const 代表"常量",表示无法分配对象.
如果您希望指针成为变量,请不要成功const.
我怀疑你期望你的作业被允许,因为它是第一次分配给那个对象.你错了!这是初始化的目的,您目前没有使用它.
我猜你打算写:
int* const p = new int[10];
Run Code Online (Sandbox Code Playgroud)
但我担心你在这里有更多根本的误解.例如:
这并不是说分配内存会改变起始地址
是的,绝对,完全会.
当你的p存在,它有一个未指定的价值.它的值不是您可以使用的"起始地址".
然后你分配给它(虽然你应该初始化).它取值等于返回的指针new.该指针与代码中的任何内容无关.