我是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
(或者两者都可以(。