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); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)