子函数和父函数(交换函数)_孤单--剪影_新浪博客

交换函数几种方式:
1.void Swap(int a,int b)<<font color="#4d6df3">错误>
{
int  tmp;
tmp=a;
a=b;
b=tmp;
}<子函数中的a和b和父函数中的a和b的地址不一样,不能交换父函数中的a和b的值>
2.void Swap(int *a,int *b)<<font color="#4d6df3">错误>
{
int *tmp;
tmp=a;
a=b;
b=tmp;
}<此子函数只是改变了a和b的地址,没有解引用,对a和b的值没有影响,就像两个人拿了两个门的钥匙开门,他们两个人只是交换了钥匙就走了,没有开门,没有达到最终目的。>
3.void Swap(int *a,*b)<<font color="#4d6df3">错误>
{
int *tmp;
*tmp=*a;
*a=*b;
*b=*tmp;
}<此子函数中的*tmp是一个野指针,又称悬挂指针,就和你在函数里面定义一个变量没有初始化一样,程序会崩溃。>
4.void Swap(int *a,int *b)<<font color="#4d6df3">正确>
{
int *tmp;
tmp=*a;
*a=*b;
*b=tmp;
}<此子函数中的既传了指针,又进行了解引用,a跳到tmp中,b跳到a中,b间接访问tmp;tmp中存的a的值,由此改变a和b的值。>
总结:子函数的改变影响父函数(把值带出来)的两个条件:1,传指针,2,解引用


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值