關(guān)于指針

今天認(rèn)真分析了下指針,有一些感悟:
函數(shù)傳遞參數(shù),只有傳地址才能更改對應(yīng)參數(shù)的值。
按照上面的原理,我們?nèi)绻胍牡氖侵羔槪敲次覀儽仨殏魅胫羔樀牡刂罚。?br> 也就是所謂的雙層指針。
下面是我自己設(shè)計的一個驗證代碼,可以清晰看出,如果函數(shù)不傳入指針地址的話,指針是不會移動的,依舊在原來的P頭。

#include <stdio.h>
#include <stdlib.h>
typedef struct PolyNode *Polynomial; // 多項式本身就是一個指針
struct PolyNode{
    int coef;  // 系數(shù)
    int expon; // 指數(shù)
    Polynomial link;  // 指向下一個位置
};

void Test(Polynomial *p, Polynomial p2){
    Polynomial pp;
    pp = (Polynomial)malloc(sizeof(Polynomial));
    pp->expon = 3;
    pp->coef = 2;
    pp->link = NULL;
    (*p)->link = pp;
    *p = pp;
    p2->link = pp;
    p2 = pp;
}

int main()
{
    Polynomial p, temp1, temp2;
    p = (Polynomial)malloc(sizeof(Polynomial));
    p->coef = 4;
    p->expon = 5;
    temp1 = p;
    temp2 = p;
    Test(&temp1, temp2); // 修改內(nèi)容,我們要傳地址; 修改地址,我們要傳地址的地址?。?!
    PrintPoly(temp1);
    PrintPoly(temp2);

    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容