下面的寫法定義了乙個引用,並將其初始化為引用某個變數。
型別名 & 引用名 = 某變數名;
int n =4;
int& r = n;
// r引用了 n, r的型別是 int &
某個變數的引用,等價於這個變數,相當於該變數的乙個別名。
例:
int n =4;
int& r = n;
r =4
; cout << r;
//輸出 4
cout << n;
//輸出 4
n =5
;cout << r;
//輸出5
具體概念:
定義引用時一定要將其初始化成引用某個變數。
初始化後,它就一直引用該變數,不會再引用別的變數了。
引用只能引用變數,不能引用常量和表示式。例:
double a =
4, b =5;
double
& r1 = a;
double
& r2 = r1;
// r2也引用 a
r2 =10;
cout << a << endl;
// 輸出 10
r1 = b;
// r1並沒有引用b
cout << a << endl;
//輸出 5
例一:
c語言中,如何編寫交換兩個整型變數值的函式?
void
swap
(int
* a,
int* b)
int n1, n2;
swap
(& n1,
& n2)
;// n1,n2的值被交換
有了c++的引用:
void
swap
(int
& a,
int& b)
int n1, n2;
swap
(n1,n2)
;// n1,n2的值被交換
例二:
引用作為函式的返回值
int n =4;
int&
setvalue()
intmain()
//輸出: 40
定義引用時**,前面加const關鍵字,即為「常引用」**
int n;
const
int& r = n;
r 的型別是 const int &
常引用注意:
不能通過常引用去修改其引用的內容:
例:
int n =
100;
const
int& r = n;
r =200
;//編譯錯
n =300
;// 沒問題
const t & 和t & 是不同的型別
t & 型別的引用或t型別的變數可以用來初始化const t & 型別的引用。
const t 型別的常變數和const t & 型別的引用則不能用來初始化t &型別的引用,除非進行強制型別轉換。
七 引用(從C到C )
內容參考於 21天學通c 第八版 1.示例1 include using namespace std intmain 執行結果 original 30 original is at address 006ff9c0 ref1 is at address 006ff9c0 ref2 is at add...
C 常引用的本質
引用作為形參時以常指標作為實現方式,而引用還有常引用的形式,顧名思義他的實現方式就是指向常量的常指標,即物件位址與值都不可修改,即 不過常引用有一些有意思的特性,被const修飾的物件的引用必須是常引用,一般引用繫結const物件時不合法的。根據錯誤提示可知,由於物件是被const修飾 的,表示不能...
C 引用與const引用
1 在實際的程式中,引用主要被用做函式的形式引數 通常將類物件傳遞給乙個函式.引用必須初始化.但是用物件的位址初始化引用是錯誤的,我們可以定義乙個指標引用.1int ival 1092 2 int re ival ok 3int re2 ival 錯誤 4int pi ival 5int pi2 p...