C/C++指针与内存管理
生活随笔
收集整理的這篇文章主要介紹了
C/C++指针与内存管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
指針和內存管理始終是C/C++比較容易模糊的知識點,但在C/C++編程中又繞不開的地方,特別在下位機上,會頻繁的與指針打交道,如果概念模糊,一不小心就會寫出冗余的代碼,可能會引起多余內存開銷或者直接影響運行速度。
一.指針
1.計算機內存主要分成這幾個區,每個區又分成無數個字節(Byte),每個字節(Byte)都有唯一的編號,而這個編號就這個字節的指針地址。一般程序能讀寫的區域只有全局變量、堆區、棧區。下面是計算機內存的示意圖:
每個字節(Byte)對應的編號地址就是指針地址:
在X86的系統上,每個字節(Byte)都由8位(bit)組成:
2.指針與變量
當定義一個變量的時候,比如 int a = 1025,在X86 系統下IDE會在棧中申請連續的4個字節(Byte)的大小用來存放這個數。如下圖:
這個字節大小可以用sizeof(int)來查看。
那么對于int的變量來說,這個4個字節的編號地址就是這個變量的指針地址。
3.字節與bit
4.指向指針的指針,p存放的是x的指針地址,而t則存放的是p的地址。
5.堆中變量,在堆區中new了一塊內存。
二.數組
1.一維數組
2.字符數組
3.二維數組
總結
以上是生活随笔為你收集整理的C/C++指针与内存管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文档扫描识别——OpenCV与C++实现
- 下一篇: 智能老旧模糊照片修复——C++实现GFP