!!!!二级指针应用部分的一点重要总结!!!

如果要通过函数调用来改变n阶指针所指向的地址,
     则需要通n+1阶指针来做形式参数来接收n阶指针的地址。否则同阶指针的函数调用并不会改变原来指针所指向的地址。
例如:
main.c

void *handle = NULL;

chagePointer(&handle);


-----------------------------------
pointer.h

changePointer(void **handle)
{



     *handle = 地址;
}


只有这样才能通过调用changePointer()函数来改变主函数中handle所指向的地址。



再比如以上程序写成如下所示:
main.c

void *handle = NULL;

chagePointer(handle);


-----------------------------------
pointer.h

changePointer(void *handle)
{



     *handle = 地址;
}

这种函数调用与普通的变量调用相同,是一种地址值传递,并没有改变主函数中handle的地址值。
再看下
main.c

int a;

chageInt(a);


-----------------------------------
change.h

changeInt(int a)
{



     a = 9;
}


第二个例子就类似这样的函数调用。




总结:通过一级指针可以通过函数调用来改变普通变量的值,二阶指针可以通过函数调用来改变一阶指针所指向的地址值。以此类推。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值