欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++核心編程之內(nèi)存分區(qū)詳解

 更新時間:2022年03月28日 10:44:55   作者:Zachery.  
這篇文章主要為大家詳細介紹了C++核心編程之內(nèi)存分區(qū),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1、內(nèi)存分區(qū)模型:

C++程序在執(zhí)行時,將內(nèi)存大方向劃分成4個區(qū)域

(1)代碼區(qū):存放安徽念書體的二進制代碼,由操作系統(tǒng)進行管理的

(2)全局區(qū):存放全局變量和靜態(tài)變量以及常量

(3)棧區(qū):由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量等

(4)堆區(qū):由程序員分配和釋放,若程序員不釋放,程序結(jié)束時由操作系統(tǒng)回收

內(nèi)存四區(qū)意義:不同區(qū)域存放的數(shù)據(jù),賦予不同的生命周期,給我們更大的靈活編程

2、代碼區(qū):

在程序編譯后,生成了exe可執(zhí)行程序,未執(zhí)行該程序前分為兩個區(qū)域

代碼區(qū):

(1)存放CPU執(zhí)行的機器指令(二進制的機器指令)

(2)代碼區(qū)是共享的,共享的目的是對于頻繁被執(zhí)行的程序,只需要在內(nèi)存中有一份代碼即可

(3)代碼區(qū)是只讀的,使其只讀的原因是防止程序意外地修改了它的指令

3、全局區(qū):

(1)全局變量和靜態(tài)變量存放在此

(2)全局區(qū)還包括了常量區(qū),字符串常量和其他常量也存放在此(字符串常量和const修飾的全局變量)

(3)該區(qū)域的數(shù)據(jù)在程序結(jié)束后由操作系統(tǒng)釋放(不是由我們來控制的)

不在全局區(qū)中的:

1、局部變量   

2、const修飾的局部變量(局部常量)

4、小結(jié):

1.C++中在程序運行前分為全局區(qū)和代碼區(qū)

2.代碼區(qū)特點是共享和只讀

3.全局區(qū)中存放全局變量、靜態(tài)變量、常量

4.常量區(qū)中存放const修飾的全局常量和字符串常量

5、代碼演示:

//程序的內(nèi)存模型-內(nèi)存四區(qū)-全局區(qū)
#include <iostream>
using namespace std;
//1 全局變量
int g_a = 10;
int g_b = 10;
//const修飾的全局變量,全局常量
const int c_g_a = 10;
const int c_g_b = 10;
int main() {
    //2 創(chuàng)建普通局部變量
    int a = 10;
    int b = 10;
    cout << "The address of local variable a is: " << &a << endl;
    cout << "The address of local variable b is: " << &b << endl;
    cout << "Global variable g_a's address is: " << &g_a << endl;
    cout << "Global variable g_b's address is: " << &g_b << endl;
    //3 靜態(tài)變量 在普通變量前面加static,屬于靜態(tài)變量
    static int s_a = 10;
    static int s_b = 10;
    cout << "The address of static variable s_a is: " << &s_a << endl;
    cout << "The address of static variable s_b is: " << &s_b << endl;
    //4 常量
    //4.1 字符串常量
    cout << "The address of the string constant is: " << &"Hello World" << endl;
    //4.2 const修飾的變量
    //4.2.1 const修飾的全局變量
    cout << "Global constant c_g_a's address is: " << &c_g_a << endl;
    cout << "Global constant c_g_b's address is: " << &c_g_b << endl;
    //4.2.2 const修飾局部變量
    const int c_l_a = 10;
    const int c_l_b = 10;
    cout << "Local constant c_l_a's address is: " << &c_l_a << endl;
    cout << "Local constant c_l_b's address is: " << &c_l_b << endl;
    return 0;
}

6、運行結(jié)果:

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!   

相關(guān)文章

  • 淺談c++性能測試工具之計算時間復(fù)雜度

    淺談c++性能測試工具之計算時間復(fù)雜度

    有時候除了測量算法的具體性能指數(shù),我們也會希望測試出算法的時間復(fù)雜度,以便我們對待測試的算法的性能有一個更加直觀的了解。本文將介紹c++性能測試工具之計算時間復(fù)雜度。
    2021-06-06
  • C++11中的可變參數(shù)模板/lambda表達式

    C++11中的可變參數(shù)模板/lambda表達式

    C++11的新特性可變參數(shù)模板能夠讓我們創(chuàng)建可以接受可變參數(shù)的函數(shù)模板和類模板,相比C++98和C++03,類模板和函數(shù)模板中只能含固定數(shù)量的模板參數(shù),可變參數(shù)模板無疑是一個巨大的改進,這篇文章主要介紹了C++11中的可變參數(shù)模板/lambda表達式,需要的朋友可以參考下
    2023-03-03
  • 深入淺析 C++ 調(diào)用 Python 模塊

    深入淺析 C++ 調(diào)用 Python 模塊

    Python 提供了 C++ 庫,使得開發(fā)者能很方便地從 C++ 程序中調(diào)用 Python 模塊。接下來通過本文給大家介紹 C++ 調(diào)用 Python 模塊的相關(guān)知識,需要的朋友參考下吧
    2016-03-03
  • 深入了解C語言中的字符串和內(nèi)存函數(shù)

    深入了解C語言中的字符串和內(nèi)存函數(shù)

    本文主要帶大家來學(xué)習(xí)一些常用的庫函數(shù)。有了這些庫函數(shù),我們可以更加方便地操作字符串和內(nèi)存,從而提升我們的編碼效率。話不多說,我們開始吧
    2022-11-11
  • 詳解Qt使用QImage類實現(xiàn)圖像基本操作

    詳解Qt使用QImage類實現(xiàn)圖像基本操作

    這篇文章主要介紹了Qt如何利用QImage類實現(xiàn)對圖像的基本操作,包括圖像顯示、圖像縮放、圖像旋轉(zhuǎn)等,感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-06-06
  • C語言返回值指針的函數(shù)詳解

    C語言返回值指針的函數(shù)詳解

    這篇文章主要為大家詳細介紹了C語言返回值指針的函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++缺省參數(shù)的具體使用

    C++缺省參數(shù)的具體使用

    缺省參數(shù)是聲明或定義函數(shù)時為函數(shù)的參數(shù)指定一個默認(rèn)值。本文就詳細的介紹了一下C++缺省參數(shù)的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2022-01-01
  • opencv3/C++繪制幾何圖形實例

    opencv3/C++繪制幾何圖形實例

    今天小編就為大家分享一篇opencv3/C++繪制幾何圖形實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • exec()函數(shù)在C++中的應(yīng)用及其用法

    exec()函數(shù)在C++中的應(yīng)用及其用法

    exec()函數(shù)在C++中是一個進程控制函數(shù),用于創(chuàng)建新進程執(zhí)行其他程序或命令行指令。exec()函數(shù)可以替換當(dāng)前進程的代碼和數(shù)據(jù),創(chuàng)建新的進程運行其他程序。exec()函數(shù)有多個版本,例如execl、execv、execle、execve等,根據(jù)不同的參數(shù)類型和個數(shù)來使用
    2023-05-05
  • 詳解C++編程中的sizeof運算符與typeid運算符

    詳解C++編程中的sizeof運算符與typeid運算符

    這篇文章主要介紹了C++編程中的sizeof運算符與typeid運算符,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01

最新評論