C++:一级指针和二级指针的简单探索

在学习C/C++的时候,学到指针这一章节,难免会有点畏难的心理,其实这在很大程度上是对指针的定义、作用原理不甚了解导致的,当你在这些东西有一个比较细致的
了解时,会发现指针也不是那么的难,当然这里针对的是小型程序。下面通过一级指针和二级指针在作用上的对比,加深对指针作用原理的理解。

一、通过调用二级指针修改一级指针的值

#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
	int i = 30;

	cout << "&i = " << &i << endl;
	cout << "i =  " << i << endl << endl;

	int* pi = &i;
	cout << "*pi = " << *pi << endl;
	cout << "pi = " << pi << endl << endl;    // 执行int *pi = &i之后,pi里面放的是i的地址

	int** ppi = &pi;
	
	cout << "pi = " << pi << endl;
	cout << "&pi = " << &pi << endl;
	cout << "ppi = " << ppi << endl;   // 执行完int ** ppi = &pi之后,ppi里面放的是pi的地址
	cout << "*ppi = " << *ppi << endl; // *ppi里面放的是pi的内容,也就是pi取得的i的地址
	cout << "**ppi = " << **ppi << endl; // pi指向的地址中的值
	
	return 0;
}

输出
在这里插入图片描述

二、通过二级指针修改一级指针的指向

#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
	int i = 30;

	int* pi = &i;
	cout << "一级指针*pi = " << *pi << endl << endl;       //一级指针

	cout << "&i = " << &i << endl;
	cout << "指针改变前pi = " << pi << endl << endl;

	int** ppi = &pi;
	cout << "二级指针**ppi = " << **ppi << endl;   //二级指针

	*pi = 20;
	cout << "改变一级指针内容: *pi = " << *pi << endl;  //改变一级指针值
	cout << "一级指针*pi = " << *pi << endl;       //二级指针

	int b = 10;
	*ppi = &b; // 这里需要好好理解,这句话就已经改变了指针的指向,*ppi原来是pi的内容,也就是i的地址,现在改为了b的地址,自然指针的指向也发生了改变
	cout << "&i = " << &i << endl << endl;;

	cout << "&b = " << &b << endl;
	cout << "指针改变后pi = " << pi << endl << endl;

	cout << "改变一级指针指向*pi = " << *pi << endl;   //改变一级指针的指向
	cout << "二级指针**ppi = " << **ppi << endl;
	
	return 0;
}

输出
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值