C 引用 記憶體單元的別名

2021-10-05 13:43:09 字數 889 閱讀 2006

1、引用是記憶體單元的別名

例如:int& b = a;,給a取乙個別名為b,但不能寫成& b = a;,引用一定是和型別結合使用的。

2、雖然引用是別名,但是c++在底層是以指標的方式來支援引用的特性的,在所有使用到引用變數的地方,系統都會自帶解引用過程。

在下面的**中分別用了引用和指標,我們檢視一下反彙編,我們發現兩個不同的**執行時是完全相同的。

3、引用的特點

(1)一定要初始化,才能引用

int a =10;

int& b = a;

此時,a和b的位址相同,先給b解引用,再使用b,再給b取位址。

(2)不能引用不能取位址的資料

int

& b =10;

//error

它就相當於int* b = &10;,這顯然是錯誤的,無法給乙個實參取位址。

(3)引用不可改變

int& b = a;不能再用b作為c的別名

(4)引用只能使用引用變數所引起的資料

int& b = a;,b只能用a的資料,如果再給b賦值,不能使用

C語言 char型別與記憶體單元理解

特點一 c c裡面整個程式執行中型別不可變 強轉不是轉型別,而是數值的轉換 python指令碼語言,型別可變 隨著資料變化而變化型別 特點二 所有函式和變數都是先定義,再使用,不能邊定義邊使用 question2 c cpp檔案是原始檔 文字檔案 c cpp 預編譯 文字 文字,預編譯只處理標頭檔案...

C 特殊的「別名」引用

1 在c 中新增加了引用的概念 2 引用可以看作乙個已定義變數的別名 3 引用的語法 type name var 4 引用做函式引數那?引用作為函式引數宣告時不進行初始化 例項 include include intmain void 屬於c 編譯器對c的擴充套件。例項 問題 c中可以編譯通過嗎?i...

8086彙編 在記憶體單元中做表

使用8086組合語言在記憶體中做一張公司記錄表。彙編執行,顯示記憶體的結果為 以上是表示21年年數的21個字串 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345980,590827,803530,1183...