调用C ++函数并更改其参数(链表)

时间:2013-02-08 06:08:24

标签: c++ function pointers linked-list

我是C ++的初学者,我有一个在main中定义的链表我将它作为参数赋予函数,在该函数内部列表被更改但是当程序从函数中出来时,链表不变是什么我该怎么办? 就像这样

mnlist nodes;
nodes.first = NULL:
typelist typel;
typel.first = NULL;
nodes = list-scheduling(nodes,typel);//this is my function

但是当程序从列表调度中退出时,typel不会改变

2 个答案:

答案 0 :(得分:1)

(我不知道名称" list-scheduling"编译的函数如何...)

无论如何,请使用参考。而不是

void foo(LinkedList l);

将其声明为

void foo(LinkedList &l);

答案 1 :(得分:0)

您应该阅读this

按值传递:

int n =10
function(int n)
{
n++;
cout<<n ;  //n==11
}
cout<<n ; //n=10. only local value changes

通过推荐传递:

int n=10;
function(int &n)
{
n++;
cout<<n ; //n=11
}
cout<<n; //n=11. Passed address of n, so changes will reflect