1,初始化鏈表頭部指針需要用二級指針或者一級指針的引用。
2,銷燬鏈表需要用到二級指針或者一級指針的引用。
3,插入、刪除、遍歷、清空結點用一級指針即可。
分析:
1,只要是修改頭指針則必須傳遞頭指針的地址,否則傳遞頭指針值即可(即頭指針本身)。這與普通變量類似,當需要修改普通變量的值,需傳遞其地址,否則傳遞普通變量的值即可(即這個變量的拷貝)。使用二級指針,很方便就修改了傳入的結點一級指針的值。 如果用一級指針,則只能通過指針修改指針所指內容,卻無法修改指針的值,也就是指針所指的內存塊。所以創建鏈表和銷燬鏈表需要二級指針或者一級指針引用。
2,不需要修改頭指針的地方用一級指針就可以了,比如插入,刪除,遍歷,清空結點。假如頭指針是L,則對L->next 及之後的結點指針只需要傳遞一級指針。
3,比如一個結點p,在函數裏要修改p的指向就要用二級指針,如果只是修改p的next指向則用一級指針就可以了
函數中傳遞指針,在函數中改變指針的值,就是在改變實參中的數據信息。但是這裏改變指針的值實際是指改變指針指向地址的值,因爲傳遞指針就是把指針指向變量的地址傳遞過來,而不是像值傳遞一樣只是傳進來一個實參副本。所以當我們改變指針的值時,實參也改變了。