引用做函式引數
struct teacher
;void printft(teacher *pt)
//pt和t1的是兩個不同的變數
void printft3(teacher pt)
void main()
引用的本質
struct teacer ;
int main()
1)引用在c++中的內部實現是乙個常指標type& name ==type* const name
2)c++編譯器在編譯過程中使用常指標作為引用的內部實現,因此引用所占用的空間大小與指標同樣。
3)從使用的角度。引用會讓人誤會其僅僅是乙個別名。沒有自己的儲存空間。這是c++為了有用性而做出的細節隱藏。當實參傳給形參引用的時候,僅僅只是是c++編譯器幫手工取了乙個實參位址,傳給了形參引用(常量指標)
函式返回值是引用
int getaa1()
//基礎型別a返回的時候,也會有乙個副本
int& getaa2()
int* getaa3()
指標引用
#include
using
namespace
std;
namespace namespacea
namespace namespaceb ;
}}struct teacher ;
void operatorteacher(teacher * const p)
void operatorteacher(const teacher * p)
void swap(int &a, int &b)
void getteacher(teacher **p)
void getteacher2(teacher* &p)
int main()
常引用
void main()
//2 用常量 初始化 常量引用
cout
<<"hello..."
<"pause");
return ;
}
C 引用總結
乙個變數的乙個別名,乙個引用只屬於乙個變數。引用與其代表的變數共享同乙個儲存單元,與變數有著相同的位址 型別 引用名 變數名 在此起標識作用,並不代表取位址符 引用必須初始化。由於沒有單獨的儲存空間,引用只有宣告沒有定義。當 前為型別名時,必為引用宣告 int b a 當 單獨存在時 p a 為取位...
C 引用總結
引用其實就是給乙個存在的變數取乙個別名,就像給人取外號一樣。編譯器不會給引用變數開闢記憶體空間,它和引用的變數公用一快記憶體空間。引用的規則是 型別 引用變數名 引用實體 如 test 輸出 0078f77c 0078f77c 引用也可以用來當作引數 void swap int left,int r...
C 引用總結
引用就相當於於起別名。語法 資料型別 別名 原名 includeusing namespace std int main 作用 函式傳參時,可以利用引用的技術讓形參修飾實參 優點 可以簡化指標修改實參 值傳遞,形參不會修飾實參。位址傳遞,形參會修飾實參。引用傳遞,形參會修飾實參。引用的語法更清楚簡單...