復合型別:基於其它型別定義的型別。
1.引用(reference)
含義:物件的另外的名字,引用另外一種型別,使用「&宣告符」的形式定義。
引用即別名,引用不是乙個物件,只是已經存在的物件的另外乙個名字,因此定義引用必須初始化,且不能定義引用的引用。
一般初始化變數,是將初始值拷貝到新物件中去,而定義引用時,只是把引用與初始值繫結,也因此不能將引用重新繫結到另外乙個物件上。
引用的賦值,即把值賦給與引用繫結的物件賦值。
獲取引用的值,即獲得與引用繫結的物件的值。
引用的型別要和與之繫結的物件的型別嚴格匹配。
引用只能繫結到物件上,不能繫結到字面值或表示式上。
例子:int a=2;
int &refa=a; //refa指向a,是a的另外的名字
int &refb; //錯誤,引用必須初始化。
refa =3; //給引用賦值,即給引用指向的物件賦值a為3,等同於 a=3;
int &refc = 20; //錯誤,引用不能使用字面值初始化。
double d = 3.14;
int &refd = d; // 錯誤,引用的型別要和與之繫結的物件的型別嚴格匹配
2.指標
含義:指向另外一種型別,與引用類似,都是間接的訪問所引用或指向的物件。
引用與指標的區別:
--指標本身是乙個物件,允許對指標賦值和拷貝,而且在指標的生命週期內可以指向不同的物件。
--指標無須在定義時初始化。與其它內建型別一樣。
--指向乙個物件
--指向緊鄰物件所佔空間的下乙個位置。
--空指標,意味著指標沒有指向任何物件。
--無效指標,不屬於上面情況的其它值。
使用指標訪問物件:解引用符 *
空指標--0
--null,預處理變數,在cstdlib中定義
--nullptr
給指標賦值
指標的操作
void* 指標
複雜復合型別的宣告
C 復合型別
陣列 陣列是一種資料格式,能夠儲存多個同型別的資料。宣告陣列的通用格式 typename arrayname arraysize arraysize指定了元素的個數,它必須是整型常量 20或者const值 也可以是表示式,但是其中的所有值在編譯時必須是已知的,所以說arraysize不是變數,變數的...
C 復合型別
include include include include include using namespace std 學習進度c primer plus第4章 復合型別 陣列 c風格字串 string變數 getline 和get 結構體 共用體 列舉 指標 new與delete管理動態記憶體 建...
C 復合型別(1)
復合型別 compound type 是指基於其他型別定義的型別。c 語言有幾種復合型別,這裡將介紹兩種復合型別引用和指標。與我們已經掌握的變數宣告相比,定義復合型別的變數要複雜很多。一條簡單的宣告語句由乙個資料型別和緊隨其後的乙個變數名列表組成。其實更通用的表述是,一條宣告語句由乙個基本資料型別 ...