* p 、 p 、 &p是一个什么关系?
来源:1-1 C语言中的指针基础
慕后端9087467
2022-08-24 09:25:40
课件里面的 int* p p &p是一个什么关系?
*p指向&data 把*p改成88后 图上对应的p里面的指向变成了0x8000 但是&p不是指向的是p的地址么
为何&p的地址还是原来的0x9000,这个有点不太理解
2回答
大白老师
2022-08-24
首先需要理解 指针;
int *p;
p是一个指针变量,变量就需要申请内存空间。0x9000是p自己本身的地址,用&p表示。
就和int a = 10. a也是一个整形变量,自己也有一个本身的地址&a
上述a和p唯一的区别是保存的内容不同, a保存的是整数,p保存的是地址。
所以a保存了10,p保存了0x8000这个地址。
*的规定: * + 地址 访问地址中的内容。
p<=====>0x8000
&p<====>0x9000
*p等价于*0x8000,访问0x8000中的内容就是10 【后期被改为了88】。
*(&p)等价于*0x9000,访问0x9000中的内容就是0x8000.
山行老师
2022-08-24
相似问题
回答 1
回答 2