深入分析C 引用

2021-09-06 22:49:45 字數 1123 閱讀 4576

關於引用和指標的差別的文章非常多非常多,可是總是找不到他們的根本差別,偶然在codeproject上看到這篇文章,認為講的挺好的,

所以翻譯了下,希望對大家有幫助。引言

我選擇寫

c++中的引用是由於我感覺大多數人誤解了引用。而我之所以有這個感受是由於我主持過非常多

c++的面試,而且我非常少從面試者中得到關於

c++引用的正確答案。

那麼c++

中引用究竟意味這什麼呢?通常乙個引用讓人想到是乙個引用的變數的別名,而我討厭將

c++中引用定義為變數的別名。這篇文章中,我將盡量解釋清楚,

c++中根本就沒有什麼叫做別名的東東。

背景 在

c/c++

中,訪問乙個變數僅僅能通過兩種方式被訪問,傳遞,或者查詢。這兩種方式是:

1.通過值訪問

/傳遞變數

2.通過位址訪問/

傳遞變數

– 這樣的方法就是指標

除此之外沒有第三種訪問和傳遞變數值的方法。引用變數也就是個指標變數,它也擁有記憶體空間。最關鍵的是引用是一種會被編譯器自己主動解引用的指標。非常難相信麼?讓我們來看看吧。。。

以下是一段使用引用的簡單

c++**

#include int main() ; int main() { // this will print 12 i.e. size of 3 pointers cout<< "size of class test = " << sizeof(class test) <

結論我希望這篇文章能把

c++引用的全部東東都解釋清楚,然而我要指出的是

c++標準並沒有解釋編譯器怎樣實現引用的行為。所以實現取決於編譯器,而大多數情況下就是將事實上現為乙個

const

指標。

引用支援

c++虛函式機制的**

#include class a { public: virtual void print() { cout<<"a.."<

上述**使用引用支援虛函式機制。假設引用不過乙個別名,那怎樣實現虛函式機制,而虛函式機制所須要的動態資訊只能通過指標才幹實現,所以更加說明引用事實上就是乙個

const

指標。

深入分析C 引用

關於引用和指標的區別的文章很多很多,但是總是找不到他們的根本區別,偶然在codeproject上看到這篇文章,覺得講的挺好的,所以翻譯了下,希望對大家有幫助。引言 我選擇寫 c 中的引用是因為我感覺大多數人誤解了引用。而我之所以有這個感受是因為我主持過很多 c 的面試,並且我很少從面試者中得到關於 ...

深入分析C 引用

摘自 關於引用和指標的區別的文章很多很多,但是總是找不到他們的根本區別,偶然在codeproject上看到這篇文章,覺得講的挺好的,所以翻譯了下,希望對大家有幫助。引言我選擇寫 c 中的引用是因為我感覺大多數人誤解了引用。而我之所以有這個感受是因為我主持過很多 c 的面試,並且我很少從面試者中得到關...

深入分析C 引用

關於引用和指標的區別的文章很多很多,但是總是找不到他們的根本區別,偶然在codeproject上看到這篇文章,覺得講的挺好的,所以翻譯了下,希望對大家有幫助。引言我選擇寫 c 中的引用是因為我感覺大多數人誤解了引用。而我之所以有這個感受是因為我主持過很多 c 的面試,並且我很少從面試者中得到關於 c...