该如何理解链表头指针在作为实参传递时,建立链表失败!
1.使用typedef定义一个链表节点指针LIST;2.在主调函数定义一个LIST变量Lp,并初始化为NULL;目的:调用函数,实例化这个链表//------------...
1.使用typedef定义一个链表节点指针LIST;
2.在主调函数定义一个LIST变量 Lp,并初始化为NULL;
目的:调用函数,实例化这个链表
//------------------------------能达到预期效果办法
被调函数的返回值为LIST类型;
Lp=被调函数();
//------------------------------能达到预期效果办法
//------------------------------未能达到预期效果办法
将主调函数中定义的Lp,作为实参传递;
void 被调函数(Lp);
//------------------------------未能达到预期效果办法
问题:
1.以上Lp本身就是一个指向链表节点的首地址,为何作为实参时,操作之后,回到主调函数时,此Lp依然没有改变?
初学...很多不懂!谢谢各位大大的指点!谢谢! 展开
2.在主调函数定义一个LIST变量 Lp,并初始化为NULL;
目的:调用函数,实例化这个链表
//------------------------------能达到预期效果办法
被调函数的返回值为LIST类型;
Lp=被调函数();
//------------------------------能达到预期效果办法
//------------------------------未能达到预期效果办法
将主调函数中定义的Lp,作为实参传递;
void 被调函数(Lp);
//------------------------------未能达到预期效果办法
问题:
1.以上Lp本身就是一个指向链表节点的首地址,为何作为实参时,操作之后,回到主调函数时,此Lp依然没有改变?
初学...很多不懂!谢谢各位大大的指点!谢谢! 展开
1个回答
2013-11-18
展开全部
由于在函数中传递的是实参的一个副本,若指针在传入函数前没有指向的内存空间,那么传入函数后,在函数中所使用的形参的那个指针虽然动态申请了内存空间但是没有办法传出。有两种解决方式,如果你是C++的话指针以引用形式传入。如果你是C的话函数返回在函数内动态申请变量的地址即可。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询