示例代码如下:
运行结果:
*j==15
const int i==0
const int i's address:0012F7E4
pointer j's address:0012F7E4
虽然程序每次运行地址会有变化,但是常量i的地址和指针j指向的确实是同一个地址。对j指向的内容做改变之后,i仍是常量,i值不变,指针j指向的变量值发生变化,g++编译器,VS2010编译器都是同样的结果,不太明白其中的内存模型是怎样的,求解答。
本文详细解析了C++中常量指针的特性,通过实例展示了常量指针如何指向常量对象,以及如何通过常量指针修改其指向对象的值。解释了内存模型在此过程中的作用,以及编译器如何处理此类操作。
示例代码如下:
运行结果:
*j==15
const int i==0
const int i's address:0012F7E4
pointer j's address:0012F7E4
虽然程序每次运行地址会有变化,但是常量i的地址和指针j指向的确实是同一个地址。对j指向的内容做改变之后,i仍是常量,i值不变,指针j指向的变量值发生变化,g++编译器,VS2010编译器都是同样的结果,不太明白其中的内存模型是怎样的,求解答。

被折叠的 条评论
为什么被折叠?