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...