1.內存
- 內存是電腦中一個重要的存儲器,計算機中所有的程序都在內存中運行的,內存的性能對計算機的影響非常大。
- 內存是計算機與CPU進行溝通的橋梁,計算機會把程序由硬盤加載到內存中后再去使用。
- 為了有效的使用內存,把內存劃分成一個個小的內存單元,每個內存單元的大小是1個字節。
為了能夠有效的訪問即快速找到內存的每個單元,就給內存單元進行了編號,這些編號被稱為該內存單元的地址。
一般運行一個程序主要涉及計算機的三個設備:內存、CPU、硬盤。
1.1內存和CPU的關系
CPU是負責數據的運算和處理,內存是用來交換數據,如果沒有內存則CPU就無法接收到數據。
1.2內存和硬盤的關系
eg:C語言中定義變量,都是在程序運行起來后在內存中開辟空間。
2.地址
2.1概念
(1)為了有效的使用內存,把內存劃分成一個個小的內存單元,每個內存單元的大小是1個字節。
(2)為了能夠有效的訪問即快速找到內存的每個單元,就給內存單元進行了編號,這些編號被稱為該內存單元的地址。
2.2地址編號
在32位平臺下,內存單元的地址是由32位的二進制數(即8位十六進制數)依次編號。
所以內存單元共有2^23個,而每一個內存單元保存1個字節的內容。(具體見上圖)
ps:
計算機訪問內存的基本單位是字節。
一般計算機有32位和64位機器。
以32位機器為例,則能安裝的最大內存為(2^32)*(1字節)=4GB
ps:4GB計算來源: (2^32)*(1字節)=(2*10)*(2*10)*(2*10)*(2*2)*(1字節)=4GB
常見的存儲單位:
bit(位)、B(字節)、KB(千字節)、MB(兆字節)、GB(千兆字節)。
B 是 Byte 的縮寫。
換算關系:
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
2^10=1024
為了有效的使用內存,把內存劃分成一個個小的內存單元,每個內存單元的大小是1個字節。
為了能夠有效的訪問即快速找到內存的每個單元,就給內存單元進行了編號,這些編號被稱為該內存單元的地址。
32位計算機是指能同時處理32位二進制數,內存單元的地址是由32位的二進制(即8位十六進制)數依次編號,所以內存單元共有2^23個,而每一個內存單元是1個字節。
所以有:
(2^32)*(1字節)=(2*10)*(2*10)*(2*10)*(2*2)*(1字節)=1024*1024*1024*4*(1字節)=4GB
2.3關于編址
(1)計算機為什么對每個字節進行編址?
提高查找效率。計算機內存中編址從最低的地址,依次向上進行編址,有了地址就可以對計算機中每個字節進行快速尋址,方便計算機進行快速查找。
(2)所有的編制都是連續編址的。
(3)編址是由硬件電路自動完成的。
2.4使用
(1)C語言中定義變量都是在內存中定義的,定義變量的本質是開辟空間。
(2)每個變量都有地址,取一個變量的地址稱作取地址。
(3)指針就是地址。
eg:
char a='A'; int b=10;
以上就是C語言入門篇--理解地址及內存的詳細內容,更多關于C語言的資文章料請關注服務器之家其它相關文章!
原文鏈接:https://blog.csdn.net/m0_46630468/article/details/119422531