现在已经知道怎样获取变量在内存中的地址,但是如果想将获取的地址进行保存,应该怎样做呢?
可以通过指针变量来存储,所谓的指针变量:就是用来存储任何一个值的内存地址。
指针变量的定义如下:
指针变量p的定义是通过 *这个符号来定义,指针变量p的类型为*int, 表示存储的是一个整型变量的地址。
如果指针变量p 存储的是一个字符串类型变量的地址,那么指针变量p的类型为*string
p=&i :该行代码的意思是,将变量i的地址取出来,并且赋值给指针变量p. 也就是指针变量p指向了变量i的存储单元。
可以通过如下图来表示:
在以上图中,一定要注意:指针变量p存储的是变量i的地址。
大家可以思考一个问题:
既然指针变量p指向了变量i的存储单元,那么是否可以通过指针变量p,来操作变量i中存储的数据?
答案是可以的,具体操作方式如下:
注意:在使用指针变量p来修改变量i的值的时候,前面一定要加上*.(通过指针访问目标对象)
现在打印变量i的值已经有100变为80.
当然,也可以通过指针变量p来输出,变量i中的值,输出的方式如下所示:
所以,*p的作用就是根据存储的变量的地址,来操作变量的存储单元(包括输出变量存储单元中的值,和对值进行修改)