關於引用,其實很簡單,c語言中的引用就是目標或者說變數的乙個別名,對它的操作和對變數的操作一樣。
引用的宣告 型別 &引用名=目標(變數)名
什麼意思?舉個栗子:
int a;int &pa=a;
這就使引用的宣告,其實就是給變數取別名。需要注意的是在宣告中「&」符號並不是取位址的意思,而是宣告引用的識別符號,並且在宣告引用時,一定要對其進行初始化。而且,在型別上引用的宣告型別要與目標名相同,這點跟指標差不多。
還有,既然引用是給變數取別名,那麼就跟給人取外號一樣,外號和人的姓名都是指那個人而不是指另乙個人,所以引用同理,引用並不占有儲存空間,也就是說,如果你對引用取位址你會得到目標的位址,即&pa和&a一樣,都是a的位址,pa=1就是a=1,對pa的操作就是對a操作。
#include
#include
intmain()
上面這串**的結果為:
雖然給引用很有意思,但是不能建立陣列的引用!!!
因為因為陣列是乙個由若干個元素所組成的集合,所以無法建立乙個陣列的別名。
引用的用處
說到引用的作用,除了是給變數取別名外,我覺得最實用的地方在與引用作為函式的形參在呼叫函式時在值傳遞中的作用。
相信很多人在初次接觸函式的時候都寫過交換函式swap,而且都碰到了這樣的問題,我們按照這樣swap(a,b),進行了傳值,但在最後輸出時a,b的值並沒有交換,我們在後來學習到可以用指標解覺這個問題,而實際上,用引用也可一解覺這個問題,而且如果用引用作為形參,我們就可以通過swap(a,b)就可以完成交換不用使用指標。不明白??沒事,我這裡有**,有真相:
#include
#include
void
swap
(int
&a,int
&b);
//用引用作為形參
intmain()
void
swap
(int
& a,
int& b)
結果是:
突然就能直接將a,b交換有咩有很爽……
c語言中的引用
引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。int rodents rats 實際上是下面 的偽裝表示 int const pr rats 引用rodents與表示式 pr相同。型別識別符號 引用名 目標變數名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別...
C語言中引用的用法
引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 宣告引用時,必...
C語言中結構體 自引用 和 相互引用
technorati 標籤 c語言,結構體,自引用,相互引用,self reference,mutual reference 結構體的自引用 self reference 就是在結構體內部,包含指向自身型別結構體的指標。結構體的相互引用 mutual reference 就是說在多個結構體中,都包含...