1、類的概念
類是一種抽象的數據類型, 類在定義的時候沒有給他分配空間,在類聲明一個對象的時, 計算機爲其分配空間 。
計算機內存一般分爲靜態數據區、代碼區、堆棧區
數據類型分爲基本數據類型和複雜數據類型
基本數據類型包括常見的int 、char、bool等,複雜數據類型包括數組、結構體等,基本數據類型一般保存在靜態區域,在固定的內存區域,在實際運行過程中,操作系統根據內存分配機制會指定起始地址,由起始地址和數據長度,我們就能夠得到他的實際值。
類在定義的時候,
一個類在定義的時候,其成員變量爲基本數據類型,那麼類本生就是對這些數據類型的引用
例如
class people{
public : int a = 20;
}
如果成員變量是一個複雜的數據類型 ,那麼類就是對複雜數據類型的引用
class people{
public: int a[20];
}
如果成員變量是靜態就會將其放置到靜態數據區域 , 如果是動態的,則會放置到代碼區域,
程序運行的時候按照編譯出來的代碼在堆棧中取其他地址,計算機根據取值所在的區域區分取值還是計算。
類對象的生成過程,包括對象的聲明、實例化和初始化。實例化一個對象就是通過new運算符爲對象分配空間,在new完成是分配空間。
new出來的東西是一個對象的引用。對象存儲在堆裏,而引用存放在棧裏,指向具體的對象。
2.內存
計算機的內存儲器被劃分爲一個個存儲單元。存儲單元按一定的規則編號,這個編號就是存儲單元的地址。地址編碼的基本單元是字節,每個字節由8個二進制位組成,也就是說每個字節是一個基本存儲單元,有一個地址。計算機就是通過這種地址編號的方式來管理內存數據讀寫的準確定位的。
程序如何利用內存單元存取數據
1、通過變量名 , 2.通過地址
程序中的變量要佔一定的內存空間 , 對一些常見的類型 ,short型佔2字節 , long型佔4字節 ,具有靜態生存變量在程序開始運行之前就已經分配內存空間的。在變量獲得內存空間的同時,變量名也就成了相應內存空間的名稱,在便利的整個生存期內都可以用這個名字訪問該內存空間,表現在程序語句中就是通過變量名存儲變量內容。同時對於不能通過變量名訪問或者訪問不方便的時候,我們通過地址來訪問
int a = 10;
int &b = a;
cout << a << b << endl;
a 和 b的值是相同的,這裏的b就是a的別名。 &b是引用(地址)
指針也是一種數據類型 ,具有指針類型的變量陳偉指針變量。 指針變量是用於存放內存單元地址的。
指針形式 數據類型 * 標識符 int * ptr
* 表示的是聲明指針類型的變量 int類型數據的指針變量 ,用來存放int型數據的地址
int a = 10;
int &b = a;
int * p = &b;
int * p = &a;
int *p = a; ///錯誤
cout<< a<<endl;
cout<<*p<<endl;
b的地址和 a的地址是同一個
int &b;定義了一個int型的引用b
int * p = &b 這裏&b就表示取地址