即使两个指针都指向同一个地址,为什么以下命令也不起作用?

时间:2019-05-15 06:51:12

标签: c

我正在学习结构和链表。当使用双重结构指针作为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;
    }
}

1 个答案:

答案 0 :(得分:3)

->的优先级高于*

*headref->next的意思是*(headref->next),而pop1->next相当于(*headref)->next

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