今天講了對象數組、指針與引用。
對象數組:數組中每一個元素對象被創建時,系統都會調用類構造函數初始化該對象。
當數組中每一個對象被生命期結束時,系統都要調用一次析構函數。
指針:內存空間的訪問方式,通過變量名訪問,稱為直接訪問。通過地址訪問,稱為間接訪問。
指針變量:用于存放地址的變量。
地址:
“地址”中存放的數據類型與指針類型必須相符。
向指針變量賦的值必須是地址常量或變量,不能是普通整數。但可以賦值為整數0,表示空指針。
指針的類型是它所指向變量的類型,而不是指針本身數據值的類型,任何一個指針本身的數據值都是unsigned long 型。
允許聲明指向 void 類型的指針。該指針可以被賦予任何類型對象的地址。
動態內存分配:
使用new和delete進行動態內存分配和釋放。
運算符new和delete是C++新增的運算符,提供了存儲的動態分配和釋放功能。
指針變量的算數運算:指針與整數的加減運算,指針加一,減一運算。
指向數組元素的指針:通過指針引用數組元素經過上述聲明及賦值后:
*pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i]。a[i], *(pa+i), *(a+i), pa[i]都是等效的。不能寫 a++,因為a是數組首地址是常量
指向類類型對象的指針聲明形式:類名*對象指針名;通過指針訪問對象成員,對象指針名->成員名。? ?
動態內存分配:使用new和delete進行動態內存分配和釋放
運算符new和delete是C++新增的運算符,提供了存儲的動態分配和釋放功能。
指向對象的指針數組:指針常量和常量指針
指針常量:
在指針定義語句的指針名前加const, 表示指針本身是常量。指針值p不可以修改,指針指向的內容可以修改。即p是常量,不可以作為左值進行運算,*p可以修改。
常量指針:
在指針的定義類型前加const,表示指向的對象是常量。
常對象和常成員函數:常對象:數據成員值在對象的整個生存期間內不能被改變。
即常對象定義是必須進行初始化,而且不能被更改。
內容比較多,比較混亂,梳理一下。