同樣的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 定義引用時,必須立即對它進行初始化...