我正在学习结构和链表。当使用双重结构指针作为head时,如果不使用另一个结构指针,就无法使其直接指向下一个元素。

void pop(struct stack **headref,int element)
{
    struct stack *pop1=*headref;
    if(pop1==NULL)
    {
        return 0;
    }

    if(r==0)
    {
        printf("%d %d",*headref,pop1);
        //*headref=*headref->next     why doesnt this line work?
        *headref=pop1->next;
        free(pop1);
        return 1;
    }
}

最佳答案

->的优先级高于*

*headref->next表示*(headref->next),而pop1->next等效于(*headref)->next

换句话说,如果添加一对括号,则不需要pop1

10-04 22:01