指针的指针的地址,指针自身的地址,指针指向的地址理解

指针的指针,指针指向的地址,还有自身的地址之间的关系有些复杂,浅谈一下自己的理解。

#include <iostream>
//#include <fstream>

int  test(int a, int b);

int  main()
{
	using namespace std;
	int i = 1, j = 2;
	int* p1 = &i;
	int* p2 = &j;
	int** p3 = &p1;
	cout << "i的地址 = " << &i << endl;
	cout << "p1=" << p1 << endl;
	cout << "p1自身的地址 = " << &p1 << endl;
	cout << "p3自身的地址" << &p3 << endl;
	cout << "p3 = " << p3 << endl;
	cout << "*p3 = " << *p3 << endl;
	cout << "**p3 = " << **p3 << endl;

	*p3 = &j;
	cout << i << endl;
	cout << *p1;

	return 0;
}

运行结果:
在这里插入图片描述
指针自身有自己的地址,p1有自己的地址,其内容为指向的地址,而指向指针的指针p3也有自己的地址,其内容为其指向的地址即p1自身的地址。
对p3一次解引用即p3则可理解为取出p3指向地址的内容,也就是p1自身地址的内容,也就是p1指向的地址&i,再对p3一次解引用得p3就是取出&i地址的存的值也即i,也就是p = i。

以上为本人自身的一点理解,若有错误,欢迎大佬指出修正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值