C 中的引用問題

2021-09-11 03:23:07 字數 1165 閱讀 2891

同樣的c++中的引用也是非常容易搞混的一節內容 這裡我自己做個總結給以後不熟悉引用的那個我複習

1.指標與引用的區別:

2.引用的用途:

c++之所以增加引用型別, 主要是把它作為函式引數,以擴充函式傳遞資料的功能。

當呼叫函式時,有三種向函式傳遞引數的方式

i.傳值呼叫:該方法把引數的實際值複製給函式的形式引數(形參)。在這種情況下,修改函式內的形式引數對實際引數沒有影響。

ii.指標呼叫:該方法把引數的位址複製給形式引數。在函式內,該位址用於訪問呼叫中要用到的實際引數。這意味著,修改形式引數會影響實際引數。

iii.引用呼叫:該方法把引數的引用複製給形式引數。在函式內,該引用用於訪問呼叫中要用到的實際引數。這意味著,修改形式引數會影響實際引數。

3.還有將引用作為返回值的,雖然我知道這是什麼意思, 但是我不知道具體有什麼用 ,節省記憶體??

用引用返回乙個函式值的最大好處是,在記憶體中不產生被返回值的副本。(別人說的)

返回引用的例子如下 :(摘自別處)

#include using namespace std;

double vals = ;

double& setvalues( int i )

// 要呼叫上面定義函式的主函式

int main ()

setvalues(1) = 20.23; // 改變第 2 個元素

setvalues(3) = 70.8; // 改變第 4 個元素

cout << "改變後的值" << endl;

for ( int i = 0; i < 5; i++ )

return 0;

}

結果:

改變前的值

vals[0] = 10.1

vals[1] = 12.6

vals[2] = 33.1

vals[3] = 24.1

vals[4] = 50

改變後的值

vals[0] = 10.1

vals[1] = 20.23

vals[2] = 33.1

vals[3] = 70.8

vals[4] = 50

應付考試前兩點應該夠了

c 中引用符 的問題

今天在刷劍指offer時,碰到乙個傳參的問題。voidprintlist vectorint result,intbegin,intend 在這個函式中,對於vector容器的result變數,不加 時,執行測試用例會出錯。也就是碰到了值傳遞和引用傳遞的問題,對此稍微查閱了一些其他的資料。值傳遞 形...

c 中的引用問題2

此處介紹另外一種編譯的方式。首先建立乙個從檔案d.cs using system namespace superdont 其次建立乙個主檔案c.bs,引用從檔案的命名空間中的類的方法。using system using superdont namespace lilizong 在編譯過程中,選擇將...

C 中的引用

最近重新看c 看到些以前沒注意的dd,溫故而知新,暫且記下。引用是能自動間接引用的一種指標,即不必使用間接引用運算子 就可以得到乙個引用值。引用可以為變數起別名,它主要用作函式引數以及函式的返回型別。1 引用的定義 如 int i int j i j是i的引用。1 定義引用時,必須立即對它進行初始化...