引用

引用不是定義一個新的變量,而是給一個已經定義的變量重新起一個別名。

定義的格式爲:

類型 &引用變量名 = 已定義過的變量名;

引用的特點:

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. 相對而言,引用比指針更安全。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章