最近,我一直在学习算法,所以我尝试编写leetcode代码。有一些程序,如
int pop(struct node ** top_pt){
//弹出数据并且释放内存
if (*top_pt==NULL){
printf("stack overflow\n");
exit(0);
}
struct Node *top=*top_pt;
//满递增
int res=top->val;
*top_pt=top->Next;
free(top);
return res;
}
那么,像*
和**
这样的指针之间有什么区别?
答案 0 :(得分:0)
没有什么,指针是一个指针是一个指针,它就是你使用的方式,它会产生重大影响。
这种模式(将指针传递给指向某事物的指针)是一种模仿按引用传递(C没有)指针的方法。这意味着当您使用例如更改指针时*top_ptr = top->Next
该更改也将在调用函数中。