为什么在创建push函数时使用指向堆栈指针的指针?

Lou*_*Lou 1 c++ stack pointers linked-list

我正在查看实现堆栈的链表的教科书示例.我不明白为什么使用指向堆栈的指针是推送操作所必需的.请参阅以下示例:

bool push( Element **stack, void *data)
{
    Element *elem = new Element;
    if(!elem) return false;

    elem->data = data;
    elem->next = *stack;
    *stack = elem;
    return true;
}
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助澄清为什么push方法的第一个参数是指向指针的指针,我将非常感激.谢谢.

太棒了,谢谢你们所有的出色帮助.

int*_*nt3 8

该函数需要修改Element指针的值,因此需要一个指向指针的指针.

换句话说:当一个函数需要修改那个东西时,它会获取某个东西的指针.

在这种情况下,某事物本身就是一个指针.因此该函数最终获取指针指针.