參考引數
定義
參考引數是由呼叫部位傳入實參的地址(寫在留言板上)的形參,
以符號“&”開始的引數即為參考引數,
如果一個形參是參考引數,呼叫部位將把實參的地址傳遞給子程式,子程式可以改變傳遞給參考引數的任何實參,因為子程式操作的是真正的變數,而不是它的副本,
參考變數在宣告的時候必須初始化
例如:
int a;
int & ref = a;
參考引數操作的是參考的物件記憶體中的空間
int a = 10;
int & ref = a;//ref 參考 a的記憶體地址
printf("ref = %d\n", ref);
a = 20;//當a記憶體的值改變,ref找到a的記憶體地址得到改變后的值
printf("當a改變后ref = %d\n", ref);
ref = 30;//ref對參考的記憶體地址進行改變, a在記憶體中的值改變,a改變
printf("當ref改變后a=%d",ref);

普通變數操作自己的記憶體空間
int a = 10;
int b = a;//使用了一個int大小的空間給b,將a的值復制給b
printf("b = %d\n", b);
a = 20;//當a所在記憶體的值改變,b所在記憶體 的值不會受影響
printf("當a改變后b = %d\n", b);
b = 30;//b所在記憶體的值改變, a在記憶體中的值也不會受影響
printf("當b改變后a=%d",a);

使用參考引數的函式呼叫方式
int sum(int & a, int & b);
//c = sum(10, 20); 錯誤,不能傳入直接數
int a = 10, b = 20;
c = sum(a, b); //正確,必須通過變數將值傳入函式
但是如果函式在宣告的時候用const修飾了參考變數,就可以傳入直接數,編譯器會創建一個臨時的無名變數跟參考變數系結,例如:
int sum(const int & a,const int & b);
c = sum(10, 20); //正確,參考變數被const修飾
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/523098.html
標籤:其他
上一篇:CORS跨域資源共享問題
