引用的定义、使用及其和指针的区别与联系
引用
對一個數(shù)據(jù)可以建立一個“引用”,它的作用是為一個變量名起一個別名。
int??a;
int??&b=a;//使變量b具有變量a的地址
注意:
1.引用不是一種獨立的數(shù)據(jù)類型,對引用只有聲明,沒有定義;
2.聲明一個引用時,必須同時使之初始化,即聲明它代表哪一個變量;
3.在聲明一個引用后,不能再使之作為另一變量的引用
int??a1,a2;
int??&b=a1;
int??&b=a2;??(錯誤)
4.不能建立引用數(shù)組
int??a[5];
int??&b[5]=a;??(錯誤)
int??&b=a[0];??(錯誤)
5.不能建立引用的引用,也沒有引用的指針
6.可以取引用的地址
7.區(qū)別引用聲明符&和地址運算符&
int??&b=a;//聲明b是a的引用
cout?<<&b<<endl;//輸出b的地址,此時&a不是引用
在聲明了引用后,在使用時不帶&,而只用引用的名字(如b,而不是&b)
?例:程序中,k被初始化為?i的引用。語句k?=?j?并不能將?k修改成為j的引
用,只是把?k的值改變成為?6?。由于?k是i的引用,所以i的值也變成了6?。
int i = 5;
int j = 6;
int &k = i;
k=j; // k 和i的值都變成了 6;
引用和指針的區(qū)別與聯(lián)系:
1.引用只能在定義時初始化一次,之后不能改變指向其他變量(從一而終),指針變量的值可變;
2.引用必須指向有效的變量,指針可以為空;
3.Sizeof指針對象和引用對象的意義不一樣。Sizeof引用得到的是所指向的變量大小,而Sizeof指針是對象地址的大小;
4.指針和引用的自增(++)、自減(-?-)意義不一樣;
5.引用比指針更安全。
例:實現(xiàn)兩個變量的值互換,用“引用”作形參
程序:
#include<iostream>
using namespace std;
int main()
{
void ?swap(int &, int &);
int i = 3, j = 5;
cout << "i=" << i << " " << "j=" << j << endl;
swap(i, j);
cout << "i=" << i << " " << "j=" << j << endl;
system("pause");
return 0;
}
void ?swap(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
結果:
i=3?j=5
i=5?j=3
請按任意鍵繼續(xù).?.?.
轉載于:https://blog.51cto.com/yaoyaolx/1754471
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的引用的定义、使用及其和指针的区别与联系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KeyMob移动广告聚合平台:类似于房地
- 下一篇: 读书笔记白帽子讲web安全