C語(yǔ)言入門篇--理解地址及內(nèi)存
1.內(nèi)存
- 內(nèi)存是電腦中一個(gè)重要的存儲(chǔ)器,計(jì)算機(jī)中所有的程序都在內(nèi)存中運(yùn)行的,內(nèi)存的性能對(duì)計(jì)算機(jī)的影響非常大。
- 內(nèi)存是計(jì)算機(jī)與CPU進(jìn)行溝通的橋梁,計(jì)算機(jī)會(huì)把程序由硬盤加載到內(nèi)存中后再去使用。
- 為了有效的使用內(nèi)存,把內(nèi)存劃分成一個(gè)個(gè)小的內(nèi)存單元,每個(gè)內(nèi)存單元的大小是1個(gè)字節(jié)。
為了能夠有效的訪問(wèn)即快速找到內(nèi)存的每個(gè)單元,就給內(nèi)存單元進(jìn)行了編號(hào),這些編號(hào)被稱為該內(nèi)存單元的地址。
一般運(yùn)行一個(gè)程序主要涉及計(jì)算機(jī)的三個(gè)設(shè)備:內(nèi)存、CPU、硬盤。
1.1內(nèi)存和CPU的關(guān)系
CPU是負(fù)責(zé)數(shù)據(jù)的運(yùn)算和處理,內(nèi)存是用來(lái)交換數(shù)據(jù),如果沒(méi)有內(nèi)存則CPU就無(wú)法接收到數(shù)據(jù)。
1.2內(nèi)存和硬盤的關(guān)系

eg:C語(yǔ)言中定義變量,都是在程序運(yùn)行起來(lái)后在內(nèi)存中開辟空間。
2.地址
2.1概念
(1)為了有效的使用內(nèi)存,把內(nèi)存劃分成一個(gè)個(gè)小的內(nèi)存單元,每個(gè)內(nèi)存單元的大小是1個(gè)字節(jié)。
(2)為了能夠有效的訪問(wèn)即快速找到內(nèi)存的每個(gè)單元,就給內(nèi)存單元進(jìn)行了編號(hào),這些編號(hào)被稱為該內(nèi)存單元的地址。
2.2地址編號(hào)
在32位平臺(tái)下,內(nèi)存單元的地址是由32位的二進(jìn)制數(shù)(即8位十六進(jìn)制數(shù))依次編號(hào)。
所以內(nèi)存單元共有2^23個(gè),而每一個(gè)內(nèi)存單元保存1個(gè)字節(jié)的內(nèi)容。(具體見上圖)
ps:
計(jì)算機(jī)訪問(wèn)內(nèi)存的基本單位是字節(jié)。
一般計(jì)算機(jī)有32位和64位機(jī)器。
以32位機(jī)器為例,則能安裝的最大內(nèi)存為(2^32)*(1字節(jié))=4GB
ps:4GB計(jì)算來(lái)源: (2^32)*(1字節(jié))=(2*10)*(2*10)*(2*10)*(2*2)*(1字節(jié))=4GB
常見的存儲(chǔ)單位:
bit(位)、B(字節(jié))、KB(千字節(jié))、MB(兆字節(jié))、GB(千兆字節(jié))。
B 是 Byte 的縮寫。
換算關(guān)系:
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
2^10=1024
為了有效的使用內(nèi)存,把內(nèi)存劃分成一個(gè)個(gè)小的內(nèi)存單元,每個(gè)內(nèi)存單元的大小是1個(gè)字節(jié)。
為了能夠有效的訪問(wèn)即快速找到內(nèi)存的每個(gè)單元,就給內(nèi)存單元進(jìn)行了編號(hào),這些編號(hào)被稱為該內(nèi)存單元的地址。
32位計(jì)算機(jī)是指能同時(shí)處理32位二進(jìn)制數(shù),內(nèi)存單元的地址是由32位的二進(jìn)制(即8位十六進(jìn)制)數(shù)依次編號(hào),所以內(nèi)存單元共有2^23個(gè),而每一個(gè)內(nèi)存單元是1個(gè)字節(jié)。
所以有:
(2^32)*(1字節(jié))=(2*10)*(2*10)*(2*10)*(2*2)*(1字節(jié))=1024*1024*1024*4*(1字節(jié))=4GB
2.3關(guān)于編址
(1)計(jì)算機(jī)為什么對(duì)每個(gè)字節(jié)進(jìn)行編址?
提高查找效率。計(jì)算機(jī)內(nèi)存中編址從最低的地址,依次向上進(jìn)行編址,有了地址就可以對(duì)計(jì)算機(jī)中每個(gè)字節(jié)進(jìn)行快速尋址,方便計(jì)算機(jī)進(jìn)行快速查找。
(2)所有的編制都是連續(xù)編址的。
(3)編址是由硬件電路自動(dòng)完成的。
2.4使用
(1)C語(yǔ)言中定義變量都是在內(nèi)存中定義的,定義變量的本質(zhì)是開辟空間。
(2)每個(gè)變量都有地址,取一個(gè)變量的地址稱作取地址。
(3)指針就是地址。
eg:
char a='A'; int b=10;

以上就是C語(yǔ)言入門篇--理解地址及內(nèi)存的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言的資文章料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
為什么要學(xué)習(xí)C語(yǔ)言 C語(yǔ)言優(yōu)勢(shì)分析
不止一個(gè)學(xué)生問(wèn)到我:“老師,為什么我們的應(yīng)用程序設(shè)計(jì)要學(xué)C語(yǔ)言而不是別的?C語(yǔ)言不是已經(jīng)過(guò)時(shí)了嗎?如果現(xiàn)在要寫一個(gè)Windows程序,用VB或Dephi開發(fā)多快呀,用C行嗎?退一萬(wàn)步,為什么選擇C而不是C++呢?”2013-07-07
strcat函數(shù)實(shí)現(xiàn)簡(jiǎn)單示例
這篇文章主要介紹了strcat函數(shù)實(shí)現(xiàn)簡(jiǎn)單示例,需要的朋友可以參考下2014-03-03
零基礎(chǔ)學(xué)習(xí)C/C++需要注意的地方
這篇文章主要介紹了零基礎(chǔ)學(xué)習(xí)C/C++需要注意的地方,文中講解非常細(xì)致,供大家參考和學(xué)習(xí),想要學(xué)習(xí)C/C++的可以閱讀此文2020-06-06
詳解QListWidget如何實(shí)現(xiàn)自定義Item效果
這篇文章主要為大家介紹了如何通過(guò)QListWidget實(shí)現(xiàn)自定義Item效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-04-04
C語(yǔ)言實(shí)現(xiàn)獲取內(nèi)存信息并輸出的實(shí)例
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)獲取內(nèi)存信息并輸出的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03
C語(yǔ)言scandir函數(shù)獲取文件夾內(nèi)容的實(shí)現(xiàn)
scandir?函數(shù)用于列舉指定目錄下的文件列表,本文主要介紹了C語(yǔ)言scandir函數(shù)獲取文件夾內(nèi)容的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
C語(yǔ)言實(shí)現(xiàn)商品管理系統(tǒng)開發(fā)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)商品管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
C++實(shí)現(xiàn)LeetCode(63.不同的路徑之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(63.不同的路徑之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

