在c++中引用方式為:
int
&c = a;
引用的本質為
int
*const c=a;
因此c本質是個指標常量,且其指標指向不可變。因此在有些需要傳遞某種資料型別的指標時,可以用引用的方式傳遞。
引用的第二種方式,就是系統會自動對引用變數進行解引用取值操作;例如:
int
&c = a;
c =100
;//*c = 100
int &c = a;本質像我前面說的,是將a的位址傳遞給c,c本質為指標常量。
c = 100;這句話如果將c看作指標常量來說,是錯誤的,此時系統會自動認為*c=100;因此此時可以將c看作a的乙個別名。
綜上所述,引用既可以看作變數的位址傳遞,也可以看作變數的引用傳遞,即為物件取別名。
區域性變數的引用不可作為函式返回值:
//返回區域性變數引用
int&
test01()
intmain()
其原因是因為區域性變數存放在棧區,當函式呼叫完成之後,區域性變數記憶體空間被釋放,此時如果呼叫其引用,會產生記憶體錯誤。
當以引用(靜態變數/全域性變數)作為函式返回值時,函式呼叫可作為左值。
//返回靜態變數引用
int&
test02()
intmain()
C 引用小結
引用的本質就是給同乙個記憶體空間起不同的名字 include using namespace std int main 引用必須要進行初始化 include using namespace std 引用的基本基本知識 void myswap int a int b int main 這種函式是萬萬要...
C 引用小結
從之前的部落格中有提到,c 有兩種特性 return by value and return by reference 一種是返回值,一種是返回引用 並且,在一般情況下,傳引用比傳值效率更高。先說說引用是什麼,引用用的是 符號,符號既可以用來當引用,也可以用來當取位址符,只不過使用方法不同。引用的本...
C 引用的小結
一 引用的概念 例如 point pt1 10,10 point pt2 pt1 定義了pt2為pt1的引用。通過這樣的定義,pt1和pt2表示同一物件。需要特別強調的是引用並不產生物件的副本,僅僅是物件的同義詞。因此,當下面的語句執行後 pt1.offset 12,12 pt1和pt2都具有 12...