實現鍊錶操作時關於指標的一些問題

2021-09-09 07:21:34 字數 513 閱讀 6276

typedef structlnode,*linklist;

void create(linklist *l)

int headinsert(linklist *l)

return 0;

}

我有疑問的地方已在**中表明。我捋了半天也沒捋清,我知道l是指向結構體的指標的指標;*l才是實際指向結構體的指標。在我的create函式的定義中,我的引數是*l,為什麼在headinsert()中呼叫create()時引數就得用l呢?為什麼不加星號或者&?

以前遇到這樣的問題時,我通常是試,不是l就是*l,基本都可以解決,但是道理一直不懂,不知道在自定義含參函式中呼叫另乙個自定義含參函式時,這個傳的引數到底應該怎麼寫,求大神指導一下。

另外,我之所以提到為什麼不加&是想到了這種情況:比如自己定義了乙個函式int word(int *a),在main()中呼叫時不是應該寫成word(&a);嗎?而在自定義函式中呼叫時好像沒見過加&的傳參方式,這塊的道理也不懂,求大神指導一下,謝謝~~

關於鍊錶操作程式設計實現的一些總結

鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。使用鍊錶結構可以克服陣列需要預先知道...

關於鍊錶的一些操作總結

這是乙個簡單的鍊錶操作問題,在leetcode上面有52.7 的通過率,難度是簡單。但是還是想在這裡基於python做一下總結,順便總結一下鍊錶的各種操作。首先先看一下leetcode上面的題目 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 高階 你可...

鍊錶的一些操作

判斷兩個鍊錶是否有交點 判斷兩個單鏈表是否相交,如果相交,給出相交的第乙個點 假設兩個鍊錶都不存在環 相交的煉表示意圖如下所示。兩個沒有環的鍊錶如果是相交於某一結點,如上圖所示,這個結點後面都是共有的。所以如果兩個鍊錶相交,那麼兩個鍊錶的尾結點的位址也是一樣的。程式實現時分別遍歷兩個單鏈表,直到尾結...