C++ 如何正确地将指针传递给函数?

C++ 如何正确地将指针传递给函数?,c++,pointers,C++,Pointers,我不知道标题是否适合这个问题,但我认为我的问题在于如何在函数中正确传递指针。 所以我有一个链表,由头指向 让我们假设我有这个链表,由head指向:{1,2,3,4,5,NULL} 我调用函数NextNode(head),并给出列表,结果是head指向2。我希望下次调用函数时,结果应该指向3。等 我希望在调用函数时,下一个节点不应该总是head->next,但它应该继续 我有一个函数,它以head作为参数 struct节点 { int-val; 节点*下一步; } 节点*create() { 节点

我不知道标题是否适合这个问题,但我认为我的问题在于如何在函数中正确传递指针。 所以我有一个链表,由头指向

让我们假设我有这个链表,由head指向:{1,2,3,4,5,NULL} 我调用函数NextNode(head),并给出列表,结果是head指向2。我希望下次调用函数时,结果应该指向3。等 我希望在调用函数时,下一个节点不应该总是head->next,但它应该继续

我有一个函数,它以head作为参数

struct节点
{
int-val;
节点*下一步;
}
节点*create()
{
节点*tmp;
节点*头;
对于(int i=1;ival=i;
tmp->next=头部;
水头=tmp;
}
回流头;
}
节点*下一个节点(节点*当前)
{
如果(发生了什么事)
{
current=current->next;//这是错误的。因为重要的是不要丢失head的指针;
}
回流;
}
int main()
{
节点*结果;
节点*另一个节点;
节点*头;
头=创建();
结果=下一个节点(头部);
标准::cout val应给出3。
但很明显,这并没有发生,因为头部是固定的。有没有其他方法可以做到这一点?

代码是我想做的伪代码。希望我已经清楚了,英语不是我的第一语言,所以请耐心等待。

更改
other=NextNode(head);
other=NextNode(result);
。 下次调用
NextNode()
时,您不会传递从上一次调用获得的下一个节点


(在旁注中,我看到您发布的代码不是有效代码,或者某些代码丢失且未发布;但这些代码足以理解您的疑问并找出解决方案。)这个代码大部分是C,C++是使用CUT的。建议你接受C++ STL。它负责重新创建轮子,这样你就可以开始构建一个应用程序。当然,这是作业。如果你想保存<代码>头<代码>,请调用<代码> NEXEthAd()。
第一次使用head的副本。第二次调用
NextHead()
,结果由第一个call@kuro:更新
head
并不是一个好主意,因为对几个节点的访问可能会丢失。@Shridharkulkarni,这就是为什么我说要使用header的副本,比如
curr\u node
,它将用
head
初始化哦,对了!我没有注意到你之前的评论。