引數傳遞(引用,指標,值傳遞)C 11

2021-06-29 02:44:39 字數 561 閱讀 1315

c++中,函式的引數傳遞方式有值傳遞、位址傳遞。傳位址有指標和引用方式。

在函式引數中,傳位址的理由有:

1.使被調函式可以修改主調函式中的資料物件;

2.傳位址可以減少資料拷貝,提高程式執行速度。

那麼,何時使用值傳遞,何時使用位址傳遞(指標和引用)?

下面是一些寫**時會遇到的一些情況

如果要傳入函式的資料物件較小,比如是內建資料型別或小規模的結構體,那麼使用值傳遞;

如果資料物件是陣列,那麼使用指標(這也是你唯一的選擇)。指標新增const修飾;

如果資料物件是大規模的結構體,使用const指標或const引用;

如果資料物件是class物件,使用const引用。這也是c++中傳遞class物件的標準做法;

資料物件是內建資料型別,使用指標(func(&var)表明函式中要修改var,比使用引用的呼叫形式func(var)可讀性好);

資料物件是陣列,指標是唯一的選擇;

資料物件是結構體,使用指標或引用;

資料物件是class物件,使用引用;

當然,以上只是一般情況。特殊情況另外討論。

c 值傳遞 指標傳遞 引用傳遞

值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作 引...

值傳遞,引用傳遞,指標傳遞

最近一直被c 的值傳遞,引用傳遞,指標傳遞這些概念所困擾,一直沒有乙個能說清他們之間的關係通過乙個簡單的例項,或者說淺顯的說法,找了一些相關資料,和自已的個人感受,簡單介紹一下,希望高人指正 c 中傳遞引數的方式有三種 傳引數的值 稱為值傳遞,簡稱傳值 傳引數的位址 稱為位址傳遞,簡稱為傳址 和引用...

值傳遞,引用傳遞,指標傳遞

值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作。引...