我是 C++ 的初学者,我在 main 中定义了一个链表,我将它作为参数提供给一个函数,在该函数内部,列表发生了变化,但是当程序从函数中出来时,链表没有改变我应该怎么做? 就像这样
mnlist nodes;
nodes.first = NULL:
typelist typel;
typel.first = NULL;
nodes = list-scheduling(nodes,typel);//this is my function
但是当程序退出列表调度时 typel 不会改变
我是 C++ 的初学者,我在 main 中定义了一个链表,我将它作为参数提供给一个函数,在该函数内部,列表发生了变化,但是当程序从函数中出来时,链表没有改变我应该怎么做? 就像这样
mnlist nodes;
nodes.first = NULL:
typelist typel;
typel.first = NULL;
nodes = list-scheduling(nodes,typel);//this is my function
但是当程序退出列表调度时 typel 不会改变
(我不知道一个名为“list-scheduling”的函数是如何编译的......)
无论如何,使用参考。代替
void foo(LinkedList l);
将其声明为
void foo(LinkedList &l);
你应该读这个
按值传递:
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