基礎學的太枯燥了,當然需要用案例來實踐一下,才能更好的鞏固所學。 所以本次來個對手機號進行加密,檢驗我們所學~ 知識點: 文件讀寫 基礎語法 字元串處理 正則表達式 代碼部分 # 導入系統包 import platform import re print("Hello,秀兒") print("簡單的 ...
C++核心編程
本階段主要針對C++面對對象編程技術做詳細講解,探討C++中的核心和精髓。
1 記憶體分區模型
C++程式在執行時,將記憶體大方向劃分為4個區域
- 代碼區:存放函數體的二進位代碼,由於操作系統進行管理的
- 全局區:存放全局變數和靜態變數以及常量
- 棧區:由編譯器自動分配釋放,存放函數的參數值,局部變數等
- 堆區:由程式員分配和釋放,若程式員不釋放,程式結束時由操作系統回收
記憶體四區意義:
不同區域存放的數據,賦予不同的生命周期,給我們更大的靈活編程
1.1 程式運行前
在程式編譯後,生成了exe可執行程式,未執行該程式前分為兩個區域
代碼區:
- 存放CPU執行的機器指令
- 代碼區是共用的,共用的目的是對於頻繁被執行的程式,只需要在記憶體中有一份代碼即可
- 代碼區是只讀的,使其只讀的原因是防止程式意外地修改了他地指令
全局區:
- 全局變數和靜態變數存放在此
- 全局區還包含了常量區,字元串常量和其他常量也存放在此
- 該區域地數據在程式結束後由操作系統釋放
1.2 程式運行後
棧區:
- 有編譯器自動分配釋放,存放函數地參數值,局部變數等
- 註意事項:不要返回局部變數的地址,棧區開闢的數據由編譯器自動釋放
堆區:
- 由程式員分配釋放,若程式員不釋放,程式結束時由操作系統回收
- 在C++中主要利用new在堆區開闢記憶體
1.3 new操作符
C++中利用new操作符在堆區開闢數據,堆區開闢的數據,由程式員手動開闢,手動釋放,釋放利用操作符delete
語法:new 數據類型
利用new創建的數據,會返回該數據對應的類型的指針