11 引用之給已有的變數取個別名

2021-10-04 23:39:23 字數 937 閱讀 3612

引用是c++對c的重要擴充。在c/c++中指標的作用基本都是一樣的,但是c++增加了另外一種給函式傳遞位址的途徑,這就是按引用傳遞(pass-by-reference),它也存在於其他一些程式語言中,並不是c++的發明。

變數名實質上是一段連續記憶體空間的別名,是乙個標號(門牌號)  程式中通過變數來申請並命名記憶體空間  通過變數的名字可以使用儲存空間

對一段連續的記憶體空間只能取乙個別名嗎? c++中新增了引用的概念,引用可以作為乙個已定義變數的別名。 基本語法:  type& ref = val; 注意事項:  &在此不是求位址運算,而是起標識作用。  型別識別符號是指目標變數的型別  必須在宣告引用變數時進行初始化。  引用初始化之後不能改變。  不能有null引用。必須確保引用是和一塊合法的儲存單元關聯。  可以建立對陣列的引用。

int num = 10;

int &a = num;//此處 &不是取位址 而是標明 a是引用變數(a 是 num的別名)

1、引用必須初始化

2、引用一旦初始化 就不用再次修改別名

int num = 10;

int &a = num;

int data = 20;

a = data;//不是data別名為a 而是將data值賦值a(num)

案例:

int num = 10;

int &a = num;//a就是num的別名 a==num

由於num僅僅是a的別名所有 a和num代表同一塊空間位址,所以位址一樣

C 11 note 1引用指標和const

conference pointer and const cppp p45 60 引用,也就是為了給變數取別名,因此,他引用的是變數名 表示式而不是常量 同時,引用必須要初始化,一旦引用完成,引用將和它的初始值物件一直繫結在一起,不能將引用重新繫結在另乙個物件上 不能定義引用的引用。但是可以有一例外...

Block迴圈引用之weak strong

在arc環境下,我們會使用 weak修飾符來修飾乙個變數防止其在block中被迴圈引用,特殊情況下還會在block中使用 strong修飾符來修飾這個變數如下 weak typeof self weakself self afnetworkreachabilitystatusblock callba...

05 引用 引號

引號的特殊效果就是,保護字串中特殊字元不被shell或者shell指令碼重新解釋或擴充套件 這裡所說的 特殊 指的是一些字元在shell中具有特殊意義,例如 ls l vv ls l vv 我們使用引號來引用乙個字串,目的是保護它的字面含義.特定的工具或程式可以重新解釋在引號內的內容,來擴充套件它,...