#include<iostream>
using namespace std;
/*
變量名,本身是一段內存的引用,即別名。此處引入的引用,是爲已有變量起一個別名
*/
int main()
{
/*
* int a=100;
*這是a是個變量名,實質是一段內存空間的別名,
*這個就是出生的時候給它的。日後我們還可以給它取個別名,如下
*int& b=a;這就建立了一種引用關係。這個時候,我們就叫b是a的別名。
*b是a的引用。那引用和a之間有什麼關係
*1.引用是一種聲明關係,聲明的時候必須初始化。你 int& b;是不可以的。
*引用不開闢空間。這個b是不佔空間的。僅僅是一段聲明的。
*此種聲明關係,一經聲明,不可變更。
*注意 這裏說的是不能聲明,而不是不能賦值
*如下:int a=100; int& b=a; int c=200; b=c;是可以的,因爲b=c這裏指
*的是賦值,不是聲明。如果你在int &b=c;這纔是聲明。
*可以對引用再次引用,多次引用的結果就是多個引用指向同一個地址
*但是&這個也是個取地址符,你怎麼區分什麼時候是引用,什麼時候是
*引用呢???。這裏其實就是運算符重載。&符號前面有數據類型的時候
*是引用,其餘的都是取地址。比如 int& 就是引用。int *p=&a就是取地址。
*但是你不能對引用進行取地址。
*/
int a=100;
int& b=a;
/*可以定義指針的引用,但是不能定義引用的引用。
* 如下:
* int a=100;int *b=&a;int *&c=b;是可以的,這裏C就是對b的引用
* 這裏b是一個指針,所以這是定義指針的引用。
* 這裏需要 int* &d=c;
*/
/*
* 可以定義指針的數組,但是不能定義引用數組,可以定義數組引用
* 定義一個數組 int a[]={1,2,3,4,5};
* 怎麼引用數組,數組名本身是個地址,但是我們不能int * &p=a;
* 因爲你a現在只是一個指針,是不能完全表達一個數組的。
* 這個a的類型實際上是int[5]這個類型,所以我們引用應該是這樣的
* int(&p)[5]=a;
*/
return 0;
}
C++學習day4之引用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.