分配C++指针



我是C++的新手,刚刚开始学习指针。如果我写代码-

const int n = 4;
int m = 4;
const int *p = &n;

我非常理解const使变量不可更改。所以,如果我想改变n,我不能,但指针的值是什么是不可改变的?因为下一个代码正在执行属性-

p = &m;

这不是应该给出一个错误吗,因为它已经在一开始就存储了n的值了?如果这是一个愚蠢的问题,我很抱歉。

const int *p = &n;

上面的指针不是一成不变的,它指向的是不可改变的

const int * const cp = &n;
cp = &m;                     // error here

这个指针是不可更改的。要使指针不可更改,请将const放在*之后。

关于指针,似乎最重要的一课(我看到初学者一直对此感到困惑(是指针,它指向的是两个独立的东西。在这种情况下,指针或它所指向的内容可以是const(或者两者都可以(。

最新更新