黑马程序员技术交流社区

标题: 指针和地址,利用地址操作变量的值 [打印本页]

作者: 洪吉童    时间: 2015-9-28 23:01
标题: 指针和地址,利用地址操作变量的值
本帖最后由 洪吉童 于 2015-9-28 23:02 编辑

这篇文章主要讲述如何利用地址存取变量值。我们知道,指针变量存储的是变量的地址,通过指针可以存取变量的值,下面看一个简单地例子:


[cpp] view plaincopy



打印:7,8      

上面这段程序中将变量m的地址存在了指针变量a中,通过*a读取和改变了m中的值,那么我们现在看看指针变量中存的这个地址具体是什么值,通过下面这段代码,我们打印出m的地址


[cpp] view plaincopy



打印结果:12FF7C

                     0012FF7C

都为十六进制数据0X12FF7C,那么既然知道指针变量里面存储的值,也就是变量m的地址,那么我们怎么利用这个 地址直接存取其中的值呢?


[cpp] view plaincopy



打印结果:7,8

那么我们成功利用这个地址数据读取和改变了这个地址中的值,下面来分析一下这两行代码


[cpp] view plaincopy





0X12FF7C只是一个整型数据,而指针变量a中存储的是整型的指针类型的数据(int*),所以需要将0X12FF7C这个整型数据先强制转化为int*,(int*)0X12FF7C,这样一来,指针变量a==(int*)0X12FF7C,*a==*(int*)0X12FF7C,所以,上面这两行代码就跟下面这两行代码是等价的:


[cpp] view plaincopy



好了,今天就到这里,希望读者看过这篇文章之后,能够更好地理解指针的含义。
来自本人博客http://blog.csdn.net/hongjitong2/article/details/48791093






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2