void go_last(bn_ptr current)
{

   bn_ptr ptr=current;

   while(ptr->next!=NULL)
   {
    ptr=ptr->next;
   }

}


我已经有了链表,并且“头”指针从头开始保持住,我定义了新的指针并用“头”进行了均衡,我只想将“当前”指针移到链表的最后一个节点,但是我的功能无法正常工作

struct binumber
{
    int number;
    struct binumber *next;
};

typedef struct binumber binumber;
typedef struct binumber *bn_ptr;

......

int main()
{


.
.
.
bn_ptr current1=head;
go_last(current1);//not working
.
.
.


}


T用不同的函数尝试过它返回指针,但是没有。

最佳答案

我希望您熟悉按值调用和按引用调用的概念。
当您将current1作为参数传递给函数时,将在本地创建另一个变量,该变量的指针值与current1相同。然后,您正在修改本地指针,该指针不会反映在调用函数中。

08-19 17:59