C++ 指针问题,这道题有困惑

代码行数13:为什么max2不是1000而是3000呢??!!求大神指点。为什么 *pmax 没有再次赋值,却变为4000???.和*P有什么关系。?
2026年09月24日 06:07
有5个网友回答
网友(1):

代码第七行有误。应该是
int *const pmax = &max, *p= &max;
这样,结果就与你下面运行的相符了。

解释:由int *const pmax = &max, *p= &max;可以看出指针*p和*pmax的地址是一样的。
一个指针地址,只能指向同一个值。所以当*p的值改变时,*pmax的值也会跟着改变。

网友(2):

初始化指针p,然后再运行。
而且指针p不是一个常量指针,如何指向一个常量呢?……不懂你是如何运行出来结果的……

网友(3):

亲~!你第7行的代码定义了一个const引用指针,引用*p和max的值,所以当*p发生改变的时候。即第十行代码,*pmax就会发生改变。希望我的回答能帮助到你~!

网友(4):

看你的代码。*p都没有初始化,怎么运行通过*p=3000;这一行的?

网友(5):

玄妙在这里.int *const pmax = &max,*p; //在于这个引用符.&