c语言没有引用造成的麻烦

本文探讨了C++中的引用特性以及如何在C语言中通过二级指针来模拟引用的功能。在C++中,引用提供了一种安全地改变函数参数的方式,而在C语言中,可以通过传递指针的指针来达到类似的效果。示例代码展示了如何使用二级指针创建二叉树,从而在主调函数中改变指针的值。

c++中有引用而c语言中没有,在写int这种类型时还想得起来用指针实现函数调用改变主调函数中变量值的事,当想改变的变成指针时就忘掉了,应该用二级指针实现“引用”一级指针的效果。

主调函数中 int *指针p 传入被调函数后 如果p=...,实际p并没有改变

而应该是传入int ** ,&p 改变时*p=...,这时主调函数中p就改变了

void CreateBiTree(BiTree **bitree,int i)//初始的时候输入i=0;
{
    //i++;
    //if(i==3||i==4||i==8||i==10||i==11||i==13||i==14||i==15)
    //bitree=NULL;

    //先序建树
    int num;
    printf("input");
    scanf("%d",&num);
    if(num==0)
    *bitree=NULL;
    else
    {
        (*bitree)=(BiTree *)malloc(sizeof(BiTree));
        (*bitree)->e=num;
        CreateBiTree(&((*bitree)->lchild),i);
        CreateBiTree(&((*bitree)->rchild),i);
    }

    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值