指针前面加*代表取出,指针所指向的内存里的数据(值),*又叫取值符
p是指针,n是变量
计算机解析代码是从右到左,所以
*&n = *(&n)
&n代表取出n在内存中的地址,取址
*&n,就是对&n在取值
*&n和n是等价的
所以下面的都是等价的
*p = *&n
*p = n
p = &n
就好比小明住在番茄花园
小明家的地址就是番茄花园
番茄花园里的值就是小明
n代表小明,
&n就是小明的家(番茄花园)
*&n就好比问小明的家里住着谁,答案依然是小明
就好比我老婆的老公还是我。
再来理解一下*p
p是一个指针,p就是一个地址
p就是番茄花园
*p就是再问,番茄花园里住着谁
就好比有一个人叫小壮的,想找小明聚聚,但是不知道小明家的地址,他就找来和小明最要好的朋友小强,磨改旁通过小强的他给了你一个字条,上面写着小明的地址,这张字条就是指针,指针就是一瞎橡个记录地址东东,如果哪天小明搬家了,这张字条也就作废了,所以指针指向的是一个内存地址,如果这个地址被释放了,这个指针也就作废了,因为指针就是一张带着地址的纸。
指针就是一个变量,这个变量里存储的是一个地址。例如int* a,double*b,a和b里面存储的都是地址清凳。槐基但是计算机去一个地址取里面的东西的时候,怎么知道这个铅正谨地址放的是啥东西呢,如果是a里面存储的,那么就说明这个地址放的一个int的值,计算机会按照整型数据存储的格式去取数据。而如果是b的地址去取数的话,计算机会按照double类型数据存储的格式去取数据。
int**c叫做指针的指针,比如变量a的地址就可以存储在c里面。
不同类型的数据在计算机中存储的格式是不一样的,你以后学习计算机组成原理就会学到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)