對C 引用的簡單理解

2021-09-26 03:47:07 字數 1125 閱讀 1310

引用是c++中的特殊用法,在c語言中是沒有的,有點類似c語言中指標的一種用法。

引用簡單說就是對已經建立的起乙個別名,或者說建立乙個副本,但是它是不分配記憶體的。

對引用變數的操作直接改變被引用變數的值,相當於是對位址操作,引用變數不能單獨存在,

一定是要有被引用變數的存在,才會有引用變數。

例如int& a;這樣是非法的,int a; int& a = a;這樣a指向了乙個被引用變數a!

這樣說可能有些矇圈,直接上**,更好理解

#include using namespace std;

int main()

輸出結果:

ia = 5, ia_addr = 0x7fff87ab1bf0 

ib = 5, ib_addr = 0x7fff87ab1bf0

*pic = 5, pic = 0x7fff87ab1bf0, pic_addr = 0x7fff87ab1bf8

id = 5, id_addr = 0x7fff87ab1bf4

ia = 0, ia_addr = 0x7fff87ab1bf0

ib = 0, ib_addr = 0x7fff87ab1bf0

*pic = 0, pic = 0x7fff87ab1bf0, pic_addr = 0x7fff87ab1bf8

id = 5, id_addr = 0x7fff87ab1bf4

ia = 1, ia_addr = 0x7fff87ab1bf0

ib = 1, ib_addr = 0x7fff87ab1bf0

*pic = 1, pic = 0x7fff87ab1bf0, pic_addr = 0x7fff87ab1bf8

id = 5, id_addr = 0x7fff87ab1bf4

ia = 2, ia_addr = 0x7fff87ab1bf0

ib = 2, ib_addr = 0x7fff87ab1bf0

*pic = 2, pic = 0x7fff87ab1bf0, pic_addr = 0x7fff87ab1bf8

id = 5, id_addr = 0x7fff87ab1bf4

對C 引用的理解

c 中引用是個非常重要的概念,引用是在c 中新增的一種復合型別,是已定義的變數的別名。但是這種別名有什麼作用呢?難道只是為了給變數起個綽號?並不是,引用變數的主要作用是用作函式形參,通過使用引用變數作為函式引數,函式將使用原始資料,而不是使用資料的副本,這樣除了指標之外,為函式訪問原始資料提供了另一...

C 引用的簡單理解

引用,顧名思義是某乙個變數或物件的別名,對引用的操作與對其所繫結的變數或物件的操作完全等價 語法 型別 引用名 目標變數名 特別注意 1.不是求位址運算子,而是起標誌作用 2.引用的型別必須和其所繫結的變數的型別相同 1 include2 using namespace std 3 int main...

對buffer的簡單理解

定義了乙個bufffer byte buf new byte 0x100000 說明 首先定義乙個buffer,說白了就是申請一塊記憶體空間,new返回的是乙個指標,所以這裡的宣告有錯的,應該這樣 byte pbuf new byte 0x100000 如果申請成功,則返回了該記憶體空間的首位址,如...