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

一篇文章帶你了解C++ static的作用,全局變量和局部變量的區(qū)別

 更新時間:2021年09月24日 16:40:37   作者:Fighting++++  
這篇文章介紹了C++ static的作用,全局變量和局部變量的區(qū)別,需要的朋友可以過來參考下,希望能夠給你帶來幫助

1.static的作用

(1) 修飾局部變量時,只初始化一次,延長了局部變量生命周期,直到程序結束才釋放。

(2)修飾全局變量,全局變量智能在本文件訪問,不能在其他文件訪問。

(3)修飾函數(shù)同修飾全局變量類似,只能在本文件調用,不能在其他文件調用。

(4)不想被釋放的時候,可用static修飾。

(5)考慮數(shù)據(jù)安全性,如當程序需使用全局變量時,應優(yōu)先考慮static。

2.staic全局變量和局部變量的區(qū)別,存儲位置?

區(qū)別:

靜態(tài)全局變量:

(1)靜態(tài)變量包況后面的靜態(tài)局部變量,都在全局數(shù)據(jù)區(qū)分配內(nèi)存。

(2)未經(jīng)初始化的靜態(tài)全局變量會被程序自動出初始化為0.

(3)靜態(tài)全局變量在聲明它的整個文件都可見,本文件之外均不可見,更不可用。(因此,其中的優(yōu)點是,在其他文件中可以定義相同名字的變量,不會發(fā)生沖突。)

靜態(tài)局部變量:

(1)同靜態(tài)全局變量(1)。

(2)靜態(tài)局部變量在程序執(zhí)行到對象聲明處首次初始化,以后函數(shù)的調用不再初始化。

(3)靜態(tài)局部變量一般在聲明處初始化,如未顯示初始化,會被程序自動初始化為0.

(4)靜態(tài)局部變量始終駐留在全局數(shù)據(jù)區(qū),直到程序運行結束。但其作用域為局部作用域,當其定義的語句和函數(shù)結束時,其作用域也結束。

static 修飾的變量存放在全局數(shù)據(jù)區(qū)的靜態(tài)變量區(qū),包括全局靜態(tài)變量和局部靜態(tài)變量,都在全局數(shù)據(jù)區(qū)分配內(nèi)存。初始化的時候自動初始化為 0。

在這里插入圖片描述

我們自底向上的方式進行講解:

1. 代碼段:主要是程序的代碼以及編譯時靜態(tài)鏈接進來的庫。這段內(nèi)存大小在程序運行之前就已經(jīng)確定,而且是只讀,可能存在一些常量,比如字符串常量。

2. 數(shù)據(jù)段:分為data和bss兩個段,表現(xiàn)為靜態(tài)內(nèi)存段,data段存放已初始化的全局變量(靜態(tài)內(nèi)存分配的變量和初始化全局變量)。bss段存放未初始化的全局變量,在內(nèi)存中bss段被清零。

3. 堆 段:用于程序動態(tài)內(nèi)存分配和管理,如何分配和管理由程序的開發(fā)者決定,大小不固定(跟您的機器內(nèi)存有關系),可以動態(tài)伸縮。

4. 映射段:該內(nèi)存區(qū)域存放鏈接其它動態(tài)程序庫的向量,共享內(nèi)存映射向量等等。

5. 棧 段:棧是一種先進后出的數(shù)據(jù)結構,該段內(nèi)存區(qū)域由程序在運行中自行管理,如:局部變量保存和撤除、函數(shù)調用相關等。

6. 輸入的環(huán)境變量和參數(shù)段:主要內(nèi)存程序執(zhí)行時的環(huán)境變量,輸入?yún)?shù)等等。

7. 就是系統(tǒng)區(qū)域。

總結

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

相關文章

  • C++中CString string char* char 之間的字符轉換(多種方法)

    C++中CString string char* char 之間的字符轉換(多種方法)

    在寫程序的時候,我們經(jīng)常遇到各種各樣的類型轉換,比如 char* CString string 之間的互相轉換,這里簡單為大家介紹一下,需要的朋友可以參考下
    2017-09-09
  • c++實現(xiàn)簡單的線程池

    c++實現(xiàn)簡單的線程池

    這里給大家介紹了C++中對于pthread線程的一個簡單應用以及使用繼承CDoit,實現(xiàn)其中的start和end,有需要的小伙伴可以參考下
    2015-11-11
  • C++函數(shù)的默認參數(shù)詳情

    C++函數(shù)的默認參數(shù)詳情

    這篇文章主要介紹了C++函數(shù)的默認參數(shù)得相關資料,C++中的默認參數(shù)的用法和Python基本一致。使用默認參數(shù)的方法非常簡單,也就是我們在函數(shù)聲明的時候,就為某些參數(shù)指定好默認值,當我們調用函數(shù)的時候,如果沒有傳入對應的參數(shù),那么則使用默認值,下面來看文章具體內(nèi)容吧
    2021-11-11
  • 詳解C++中inline關鍵字的作用

    詳解C++中inline關鍵字的作用

    這篇文章主要為大家介紹了C++中的inline關鍵字,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C++實現(xiàn)STL容器的示例

    C++實現(xiàn)STL容器的示例

    本文主要介紹了C++實現(xiàn)STL容器的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • 教你如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù)

    教你如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù)

    通過本文教大家如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-01-01
  • 算法詳解之回溯法具體實現(xiàn)

    算法詳解之回溯法具體實現(xiàn)

    這篇文章主要介紹了算法詳解之回溯法具體實現(xiàn),需要的朋友可以參考下
    2014-02-02
  • C語言實現(xiàn)輸入ascii碼,輸出對應的字符方式

    C語言實現(xiàn)輸入ascii碼,輸出對應的字符方式

    這篇文章主要介紹了C語言實現(xiàn)輸入ascii碼,輸出對應的字符方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C語言互換最大值與最小值的位置

    C語言互換最大值與最小值的位置

    大家好,本篇文章主要講的是C語言互換最大值與最小值的位置,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C++學習之IO流(輸入輸出流)詳解

    C++學習之IO流(輸入輸出流)詳解

    流是一種抽象概念,它代表了數(shù)據(jù)的無結構化傳遞。而用來進行輸入輸出操作的流就稱為IO流。這篇文章主要為大家介紹了C++中IO流的使用詳解,需要的朋友可以參考一下
    2021-12-12

最新評論