代码第七行有误。应该是
int *const pmax = &max, *p= &max;
这样,结果就与你下面运行的相符了。
解释:由int *const pmax = &max, *p= &max;可以看出指针*p和*pmax的地址是一样的。
一个指针地址,只能指向同一个值。所以当*p的值改变时,*pmax的值也会跟着改变。
初始化指针p,然后再运行。
而且指针p不是一个常量指针,如何指向一个常量呢?……不懂你是如何运行出来结果的……
亲~!你第7行的代码定义了一个const引用指针,引用*p和max的值,所以当*p发生改变的时候。即第十行代码,*pmax就会发生改变。希望我的回答能帮助到你~!
看你的代码。*p都没有初始化,怎么运行通过*p=3000;这一行的?
玄妙在这里.int *const pmax = &max,*p; //在于这个引用符.&