插入或删除链表等函数调用时,参数传递的问题
在一本教材上看到插入链表的函数用的是链表头文件指针的指针 *sPtr 作为传递参数的,而调用函数时用了 &startPtr (Method 1)。不太明白这样用的目的。不能直接传头文件指针吗?(Method 2)貌似有问题,但问题在哪里呢?
请教大家,两种方法啥区别呢,特别第一种,帮忙详细解释下~
谢啦
// Method 1
struct listNode
{
int data;
struct listNode *next;
}
typedef struct listNode LISTNODE;
typedef LISTNODE *LISTNODEPTR;
void insert(LISTNODEPTR *sPtr, int value)
{
...
}
main()
{
LISTNODEPTR startPtr = NULL;
...
insert(&startPtr, value)
...
}
// Method 2
struct listNode
{
int data;
struct listNode *next;
}
typedef struct listNode LISTNODE;
void insert(LISTNODE *sPtr, int value)
{
...
}
main()
{
LISTNODE *startPtr = NULL;
...
insert(startPtr, value)
...
}