14、函數的傳值和傳指標

來源:互聯網
上載者:User
————————————
向函數傳參數時,一般而言,傳入非const的指標時,就表示,在函數中要修改這個指標把指記憶體中的資料。如果是傳值,那麼無論在函數內部怎麼修改這個值,也影響不到傳過來的值,因為傳值是只記憶體拷貝。

什嗎?你說這個特性你明白了,好吧,讓我們看看下面的這個常式:

void
GetVersion(char* pStr)
{
    pStr = malloc(10);
    strcpy ( pStr, "2.0" );
}

main()
{
    char* ver = NULL;
    GetVersion ( ver );
    ...
    ...
    free ( ver );
}

我保證,類似這樣的問題是一個新手最容易犯的錯誤。程式中妄圖通過函數GetVersion給指標ver分配空間,但這種方法根本沒有什麼作用,原因就是——這是傳值,不是傳指標。你或許會和我爭論,我分明傳的時指標啊?再仔細看看,其實,你傳的是指標其實是在傳值。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.