二级指针/指向指针的指针 案例解释

#include<stdio.h>
#include<stdlib.h>
//普通变量
char a = 'a';
char b = 'b';
//指针变量
char *pa = &a;
char *pb = &b;
//二级指针变量
char **ppb = &pb;

//通过指针改变变量本身的值
void change(char *point1){
	*point1 = 'd';
}
//通过指向指针的指针改变指针本身
void changeP(char **point1){
	*point1 = pa;
}

void main(){
	//试图改变[变量b],就得传入[变量b]的内存地址,[指针pb]保存
	//change(pb);
	
	printf("&a:%x-&b:%x \t &pa:%x-pa:%x-pb:%x\n", &a, &b, &pa,pa, pb);
	printf("*b:%c\n", *pb);
	printf("-----------------------\n");
	//试图改变[指针b],就得传入[指针b]的内存地址,二级指针[ppb]保存
	//[指针b]原本保存[变量b]的内存地址,变为保存[变量a]的内存地址;
	changeP(ppb);//或者changeP(&pb);
	printf("&a:%x-&b:%x \t &pa:%x-pa:%x-pb:%x\n", &a, &b, &pa, pa, pb);
	printf("*b:%c\n", *pb);
	system("pause");
}



--输出结果-------------------------------总结:指针的出现是为了改变变量的值,而二级指针是为了改变指针的值-----------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值