作业帮 > 综合 > 作业

若int a=5,*p=&a; 1.那么 a ,&a,p,*p的区别是什么?2.如果&*p,*&a 等价于 p,a 是不

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 08:48:21
若int a=5,*p=&a; 1.那么 a ,&a,p,*p的区别是什么?2.如果&*p,*&a 等价于 p,a 是不是还等价于&a
若int a=5,*p=&a;
1.那么 a ,&a,p,*p的区别是什么?
2.如果&*p,*&a 等价于 p,a
是不是还等价于&a ,*p?
如果正确,是不是p=&a a=*p?
int a=5,*p=&a;
首先,运算符你要懂 &取内存地址 *从内存地址取数据
&a表示a这个变量的内存地址,是十六进制数,假设是Ox2455ffcc
*p=&a; 把&a也就是Ox2455ffcc这个值存入p所指向的内存.p是另一个内存地址,假设是 Ox47512AAFF,可见,p是指针的指针,p指向的不是普通值,而是一个内存地址.
打个比方,内存空间是抽屉,p是第一个抽屉的位置,*p表示抽屉里的钥匙,*p=&a,&a为第二个抽屉的位置,所以这把钥匙可以打开第二个抽屉,a是第二个抽屉里的物品.
总之,一块内存空间有两个值:一个是其本身的地址,一个是里面存储的数据.
*地址==数据 &数据==地址