C/C++指針與內(nèi)存管理圖文詳解
指針和內(nèi)存管理始終是C/C++比較容易模糊的知識點,但在C/C++編程中又繞不開的地方,特別在下位機上,會頻繁的與指針打交道,如果概念模糊,一不小心就會寫出冗余的代碼,可能會引起多余內(nèi)存開銷或者直接影響運行速度。
一.指針
1.計算機內(nèi)存主要分成這幾個區(qū),每個區(qū)又分成無數(shù)個字節(jié)(Byte),每個字節(jié)(Byte)都有唯一的編號,而這個編號就這個字節(jié)的指針地址。一般程序能讀寫的區(qū)域只有全局變量、堆區(qū)、棧區(qū)。下面是計算機內(nèi)存的示意圖:
每個字節(jié)(Byte)對應(yīng)的編號地址就是指針地址:
在X86的系統(tǒng)上,每個字節(jié)(Byte)都由8位(bit)組成:
2.指針與變量
當(dāng)定義一個變量的時候,比如 int a = 1025,在X86 系統(tǒng)下IDE會在棧中申請連續(xù)的4個字節(jié)(Byte)的大小用來存放這個數(shù)。如下圖:
這個字節(jié)大小可以用sizeof(int)來查看。
那么對于int的變量來說,這個4個字節(jié)的編號地址就是這個變量的指針地址。
3.字節(jié)與bit
4.指向指針的指針,p存放的是x的指針地址,而t則存放的是p的地址。
5.堆中變量,在堆區(qū)中new了一塊內(nèi)存。
二.數(shù)組
1.一維數(shù)組
2.字符數(shù)組
3.二維數(shù)組
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
深入剖析設(shè)計模式中的組合模式應(yīng)用及在C++中的實現(xiàn)
這篇文章主要介紹了設(shè)計模式中的組合模式應(yīng)用及在C++中的實現(xiàn),組合模式可以清晰地反映出遞歸構(gòu)建樹狀的組合結(jié)構(gòu),需要的朋友可以參考下2016-03-03Microsoft Visual Studio 2022的安裝與使用詳細教程
Microsoft Visual Studio 2022是Microsoft Visual Studio軟件的一個高版本,能夠編寫和執(zhí)行C/C++代碼,具有強大的功能,是開發(fā)C/C++程序的主流軟件,這篇文章主要介紹了Microsoft Visual Studio 2022的安裝與使用詳細教程2024-01-01C++?實現(xiàn)單鏈表創(chuàng)建、插入和刪除
這篇文章主要介紹了C++?實現(xiàn)單鏈表創(chuàng)建、插入和刪除方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07C語言數(shù)據(jù)結(jié)構(gòu)系列篇二叉樹的概念及滿二叉樹與完全二叉樹
在上一章中我們正式開啟了對數(shù)據(jù)結(jié)構(gòu)中樹的講解,介紹了樹的基礎(chǔ)。本章我們將學(xué)習(xí)二叉樹的概念,介紹滿二叉樹和完全二叉樹的定義,并對二叉樹的基本性質(zhì)進行一個簡單的介紹。本章附帶課后練習(xí)2022-02-02C++深入詳解單例模式與特殊類設(shè)計的實現(xiàn)
這篇文章主要為大家詳細介紹了C++單例模式和特殊類的設(shè)計,單例模式這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-06-06