內存

#include<stdio.h>
#include<stdlib.h>

//內存是由按順序編號的一系列存儲單元組成的,在內存中每個存儲單元都有唯一的地址,
//通過地址可以方便地在內存單元中存取信息。
//內存中的數據要靠供電來維持,當計算機關機或者斷電時,其中的所有數據就永久消失了。


//一個程序載入內存,代碼數據都有地址
//外掛就是調用函數,修改數據
//函數就是代碼,變量就是數據

//內存與CPU讀寫速度快,斷電就沒有了,容量比較小,成本比較高
//高級服務器、讀寫很頻繁的文件全部放入內存

//內存地址
//爲了正確地訪問每個內存單元,對其進行編址,以32位計算機爲例,其地址空間爲32位,採用32位地址編碼,諸如0x12345678的形式。
//內存地址是連續的,相鄰內存單元間的地址差1,可以把內存單元看做一個平坦連續的一維空間。

//32位計算機,內存最大爲4G
//4G = 4 * 1024 M = 4 * 1024 * 1024 KB = 4 * 1024 * 1024 * 1024 Byte = 4 * 1024 * 1024 * 1024
//																	 = 2^2 * 2^10 * 2^10 * 2^10
//																	 = 2^32 Byte
//一個字節即地址加1,內存中每一個字節都有一個編號,即地址
//地址空間爲32位

//內存中保存的是數據,在計算機中,一切信息都是以二進制數據的形式體現的,每個內存單元的容量是1B,即1bit(8個0/1二進制位)
//中央處理器,即CPU,進行的處理離不開內存。
//使用windows系統時,雙擊某個可執行程序,CPU會執行它,這實際是複雜的內存載入過程:
//(1)程序要進行的操作對應的代碼被裝載到代碼區
//(2)全局和靜態數據等裝載到數據區
//(3)開闢堆棧,供臨時變量使用
//內存中的數據是多種多樣的,可以是操作,也可以是數據,都被存儲在一個個的內存小格子中,每個小格子存儲8個二進制位


void main()
{
	printf("%x\n", main1);			//函數名就是函數的首地址
	int num;
	
	printf("%x\n", &num);


	num = 4;
	printf("%d\n", num);

							//設置斷點
							//根據地址在內存中修改變量的值

	printf("%d\n", num);

	system("pause");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章