學習了引數的三種傳遞方式:值傳遞、指標傳遞與引用傳遞後不由地對這不熟悉的引用感到好奇,根據引用的概念,引用在定義初始化時與物件名繫結,為物件建立引用名,就類似於別名的作用,可別名不就會像值傳遞一樣不改變實參的值了嗎,可引用傳遞又能跟指標傳遞一樣改變實參的值,我便抱著這種疑問對引用展開**。
先看下引用傳遞的效果
如果引用只是別名,那他就應該不會占用記憶體而是跟物件共享記憶體,反之則更類似於指標,所以先測試引用的記憶體關係。
可以看作引用在編譯過程中以常指標作為實現方式,c++引入可讀性與實用性更強的引用,在可以代替指標時應避免使用指標。
另外引用傳遞時並非不佔記憶體,查閱資料得知由於其實現方式同常指標,所以引用占用的空間大小與指標相同,而通過sizeof方法得出的只是物件的大小,而這些都是c++為了實用性作出的細節隱藏。
c 中引用的作用
用途起別名 type 別名 原名 引用必須初始化 一旦初始化後,不能修改 對陣列建立引用 includeusing namespace std 1.引用基本語法 type 別名 原名 void test01 2.引用必須初始化 void test02 void test01 位址傳遞 void my...
C 引用的作用和用法
c 引用的作用和用法 我的總結 引用的好處之一就是在函式呼叫時在記憶體中不會生成副本。引用總結 1 在引用的使用中,單純給某個變數取個別名是毫無意義的,引用的目的主要用於在函式引數傳遞中,解決大塊資料或物件的傳遞效率和空間不如意的問題。2 用引用傳遞函式的引數,能保證引數傳遞中不產生副本,提高傳遞的...
C 引用作用詳解
c 中的引用,就像是對這個記憶體位址上起了乙個別名。例,如下 所示 int a 10 實際上程式為此做出指標 相當於 int const b a 同樣說明它的指向不可以更改,但是值可以更改 int b a 正確 int c a 正確 下面兩行是錯誤的引用,引用必須立即初始化 int d d a 看如...