單鏈表為什麼用指向指標的指標

2021-07-09 13:28:56 字數 945 閱讀 5091

int a = 1, b =2;

void change(int *x)

void _change(int **x)

void main()

上面的例子很好的說明了傳遞指標與傳遞指標的指標的不同;所以在建立單鏈表時,由於需要修改傳遞給呼叫函式的頭指標的值,所以需要傳遞指向頭指標的指標;

#include #include #include #define elemtype int  

typedef struct node

node;

typedef struct node* linklist; //定義linklist為指向每個結構體的指標

/*建立含有n個結點的帶有頭結點的鍊錶*/

int creatlisthead(linklist *l,int n)

(*l)->next = null; //建立了乙個只有頭結點的單鏈表

/*建立新的結點並依次插入*/

for(i=0;idata = rand()%100 + 1; //隨機產生乙個100之內的數

p->next = (*l)->next;

(*l)->next = p;

} printf("finish creat linklist!\n");

return 0;

}

int main()

1)每個鍊錶結點,可能會發生刪除插入操作,所以注定了結點結構體中的指標肯定會不斷的發生變化———鍊錶結點的定義一定要用指標來對結點進行間接訪問

2)在傳入頭結點指標給呼叫函式時,在函式的操作過程中,會給頭結點分配記憶體空間,對其進行修改。所以我們要用指向頭結點指標的指標來作為函式的引數。

為什麼用指標

相信接觸過程式設計的,大部分應該對c語言有一定了解或者學過一門c語言課程。或多或少聽到這種說法 c語言很難學,特別是指標。我大一下學期開的這門課,學完之後感覺還好 其實是我沒有深入學,典型的自我感覺良好 但指標那塊確實也沒太弄明白。現在好像明白了一點什麼是指標,在什麼情況下用比較好。int a 1 ...

為什麼用指標 二

是的,a 和 b 的值倒過來了,為什麼呢?看程式 給 tmp 付給了 a的值 10 給a 付給了 b 的值 5 給 b 付給了 tmp 的值10 所以a 和 b 值倒過來了 void swap int a,int b intmain 怎樣才能用函式交換a 和 b 的值呢?用指標 看程式三 把 a,b...

單鏈表與指向指標的指標

今天我們來實現帶頭結點的乙個單鏈表的建立。include include include define elemtype int typedef struct node node typedef struct node linklist 定義linklist為指向每個結構體的指標 建立含有n個結點的...