復合型別 引用與指標
1、 引用即別名
int
&refval = ival;
int ii = refval;
// equal ii == ival
refval就是ival的另乙個名字,直接食用即可。
2、 引用並非物件,相反的,它只是為存在的物件起的另乙個名字
3、 引用只能bind物件,不能與字面值或某個表示式bind
int
&refval2 =
10//錯誤,引用型別的初始值必須是物件
double dval =
3.14
;int
&refval3 = dval;
//錯誤,引用型別的初始值必須是int型物件
1、 指標本身是乙個物件,允許對指標賦值和拷貝,而且在指標的生命週期內它可以先後指向幾個不通的物件
2、 指標無須在定義時賦值
3、 定義指標型別的方法是 *d,d是變數名
4、 獲取物件的位址
int ival =2;
int*p =
&ival //& 取位址符
double dval;
double
*pd =
&dval;
//right
double
*pd2 = pd;
//right
int*pi = pd;
//error
pi =
&dval;
//error 資料型別不同
*(解引用符)
int ival =2;
int*p =
&ival;
cout <<
*p;// 2
*p =0;
cout <<
*p;// 0
int *p1 = nullptr;
int *p2 = 0;
int *p3 = null;
建議:初始化所有的指標,訪問未初始化的指標會程式崩潰。
int ival =
1024
;int
*p1 =0;
int*p2 =
&ival;
if(p1)
//...false
if(p2)
//...true
double obj =
3.14
,*pd =
&obj;
void
*pv =
&obj;
//任何型別
pv = pd;
void*的視角來看記憶體空間,沒辦法訪問記憶體空間中所存的物件。 C 復合型別 引用和指標
include using namespace std 復合型別 基於其他型別定義的型別 常見 引用 指標 引用 1.右值引用 rvalue reference 2.左值引用 lvalue reference 引用必須是乙個物件,引用就是起乙個別名,引用必須初始化。指標 是 指向 point to ...
復合型別 指標和引用
復合型別,顧名思義就是指基於其他型別定義的型別,主要有 指標 與 引用 本文將先分別介紹這兩種型別,接著將介紹二者之間的異同之處。一般來講,一條宣告通用的格式為 基本資料型別 宣告符。在簡單宣告語句中,宣告符就是變數名,換句話說,此時的變數型別就是宣告符前面的基本資料型別。而復合型別就是一種基於基本...
C 復合型別之引用和指標
復合型別是指基於其他型別定義的型別。c 有很多復合型別,介紹其中的引用和指標 對變數的宣告的解釋 一條簡單的宣告語句是由乙個資料型別和緊隨其後的變數名列表組成。其實更通用的描述是 一條宣告語句由乙個基本資料型別和緊隨其後的乙個宣告符列表組成。每個宣告符命名了乙個變數並指定該變數是與基本資料型別有關的...