回覆列表
  • 1 # 使用者6769011209644

    傳值和傳引用的區別。這裡把addtoend裡else後面的部分先略掉,假設函式是這樣,直接傳結構體指標

    你呼叫的時候是這樣寫的實際的AddToEnd函數里面是這樣執行的所以呢,函數里的head是一個臨時變數,對head的修改並不會修改到函式外面你真正想要修改的header指標。這是傳值的寫法,那麼如果想改外面的header呢,要傳引用。下面這樣寫,接著上面同意的呼叫方法,實際的執行是這樣的:這樣,就可以起到修改外面的header指標的作用了。一個指標也是一個變數,也是遵循傳值和傳引用的規則的。

  • 2 # 使用者8201481786170

    #include

    using namespace std;

    //傳值呼叫

    void chuanzhi(int a,int b)

    {

    int t=a;

    a=b;

    b=t;

    cout

    cout

    }

    //指標傳遞

    void zhizhen(int *a,int *b)

    {

    int t=*a;

    *a=*b;

    *b=t;

    cout

    cout

    }

    //引用呼叫

    void yinyong(int &a,int &b)

    {

    int t=a;

    a=b;

    b=t;

    cout

    cout

    }

    int main()

    {

    int x=2,y=4;

    cout

    chuanzhi(x,y);

    cout

    x=2,y=4;

    cout

    zhizhen(&x,&y);

    cout

    x=2,y=4;

    cout

    yinyong(x,y);

    cout

    return 0;

    }

    寫的有點多 執行完就 9 行

    放在c++ 編譯器裡 執行下看看 就知道了

    交換函數里面是肯定交換了,

    而只有 指標傳遞和引用傳遞 才會對原來的變數值產生影響;

  • 中秋節和大豐收的關聯?
  • SAMPLE的鞋是什麼意思?