變量定義
這裡的 a 就是一個變量,在記憶體裡,開辟了四個位元組的記憶體空間,a 指向的首個位元組的位址。 而 “0” 是放在這四個位元組空間裡的資料。
我們把 a的位址列印出來
std::cout << &a << std::endl;
結果是
0x7ffeead54828
此時,我們在定義一個 b 變量,并吧 a 指派給 b 變量。
我們再把b的位址列印出來
std::cout << &b << std::endl;
結果是
0x7ffeead5481c
會發現,定義變量 b 的時候,又開辟了四個位元組的記憶體空間,并把 a 變量指向的記憶體空間裡的資料拷貝到了 b 變量開辟的記憶體空間裡。
那麼,有沒有一個辦法,定義另外一個變量,指向 a 變量所指向的記憶體空間呢,答案是肯定的,那就是 “引用” 變量。
引用變量的定義
int $c = a;
int代表的是“引用”指向的變量的資料類型。 使用&c來定義一個引用類型。而 c 則是該應用類型的名稱。
此時,你會發現 c 變量所指向的記憶體空間和 a 變量所指向的記憶體空間是同一個。
我們把變量 c 的記憶體位址列印出來
我們把 a的位址列印出來
std::cout << &c << std::endl;
結果是
0x7ffeead54828
和 a 變量指向的是同一個記憶體位址。
引用變量總結:
1. 引用變量也是一種變量,隻不過他的定義和普通變量稍有不同,在變量名前面加了個“&”符号。
2. 引用變量其實是為已經存在的變量取了一個新的名詞。引用變量所指向的記憶體位址和舊變量所指向的記憶體位址一緻。
2. 對引用變量的指派,其實就是對引用變量代表的變量指派(因為指向的是同一塊記憶體位址)。
需要注意:引用類型在定義的時候必須初始化