目錄
1.內存
a.內存的管理
2.指針變量的大小
內存是電腦上的存儲器,計算機中的程序運行都是在內存中進行的。
a.內存的管理內存首先是被劃分成一個個的內存單元,每一個內存單元是一個字節的大小,并且每一個內存單元都有對應的編號。但編號又是多少呢?
這就與我們的電腦硬件有關了,假設我們電腦是32位機器,那么在32位機器上就有32根地址線(電線),在運行時會被通電,也就產生了高電頻與低電頻兩種電信號,轉換成數字型號就是
0和1兩種。又因為是在32根地址線上,那么很容易知道會有2的32次方種情況,那么也就是我們的內存單元的編號了。
那么2的32次大小的編號可以管理多少內存呢?
那就是 (2^32)/1024/1024/1024=4GB的內存空間。
而內存單元的編號就是一個個地址,C語言中地址又被叫做指針。
舉個例子:
我們創建了整型變量a,那么就要向內存中申請四個字節的空間,也就是四個內存單元,而我們的每個內存單元都有一個對應的編號(地址),那么哪一個才是我們a的地址呢?
看數據圖,這四個內存單元確實都有編號(地址),而0x0043FCB0才是a的地址,那么
得出結論:最小的那個編號就存放著a的地址,但四個內存單元一起儲存a(10)的
我們再看看內存中的數據 0x00 00 00 0a,為什么是用十六進制數字呢?
內存中本來放的是二進制的數字,但為了更好的展示出來,是用十六進制的數字展示的。
而地址(指針)又存在哪里呢?
2.指針變量的大小
p是用來存地址的也就是存放指針的,我們就叫p為指針變量,類型是 int*
int:說明p指向的a是int類型的。
*:說明p是指針變量是用來存放地址的。
我們也可以通過訪問a的地址去找到a呢。
我們已經知道指針變量是存放指針(地址)的,那指針變量的大小應該是多少呢?
提前聲明一下我這是64位機器。
為什么會是8呢?
指針變量是存放地址的,而地址又是我們前面提到的編號。因為我這是64位機器,那么說就是有64根地址線(電線),所以存儲這樣的地址需要64個bit位的空間,也就是八個字節。
那么32位機器就需要4個字節存儲地址,所以說32位機器上指針變量的的大小就是4個字節。
這是初始的解釋,接下來如果我還有新的領悟與學習,那么我會再更的噢!
如果覺得寫的還行那就三連鼓勵一波吧!如果覺得哪里有問題的請留言!
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
名稱欄目:C語言指針詳解-創新互聯
分享地址:http://vcdvsql.cn/article0/dipoio.html
成都網站建設公司_創新互聯,為您提供網站策劃、網站改版、企業網站制作、定制開發、網站制作、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯