引用不是定義一個新的變量,而是給一個已經定義的變量重新起一個別名。
定義的格式為:
類型 &引用變量名 = 已定義過的變量名;
引用的特點:
1. 一個變量可取多個別名
2. 引用必須初始化
3. 引用只能在初始化的時候引用一次,不能改變為再引用其他的變量。
引用在交換數中的應用:
void swap(int& left,int &right)
{
int tmp=left;
left=right;
right=tmp;
}
int main()
{
int a=4;
int b=2;
swap(a,b);
cout<<"a:"<<a<<endl;
cout<<"b:"<<b<<endl;
}const引用:
void TestReference2 ()
{
int d1 = 4;
const int & d2 = d1;
d1 = 5; // d1改變 d2的值也會改變。
//d2 = 6; // 不能給常量(不能被修改的量)賦值
const int d3 = 1;
const int & d4 = d3;
//int&d5 = d3;
const int & d6 = 5; // 常量具有常性,只有常引用可以引用常量
double d7 = 1.1;
//int& d8 = d7; //d7是double類型,d8是int,d7賦值給 d8時要生成一個臨時變量
// 也就是說d8引用的是這個帶有常性的臨時變量,所以不能賦值。
const int& d9 = d7;
}引用與指針的區別:
1. 引用只能在定義時初始化一次,之后不能改變指向其它變量(從一而終);指針變量的值可變。
2. 引用必須指向有效的變量,指針可以為空。
3. sizeof指針對象和引用對象的意義不一樣。sizeof引用得到的是所指向的變量的大小,而sizeof指針是對象地址的大小。
4. 指針和引用自增(++)自減(--)意義不一樣。
5. 相對而言,引用比指針更安全。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。