" />

亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解C語(yǔ)言中的Static關(guān)鍵字

 更新時(shí)間:2022年01月18日 15:29:47   作者:build.code  
這篇文章主要為大家介紹了C語(yǔ)言中Static關(guān)鍵字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

一、static關(guān)鍵字的基本含義

首先,static關(guān)鍵字的意思是靜態(tài)的,用于修飾局部變量,全局變量和函數(shù),修改其數(shù)據(jù)儲(chǔ)存類(lèi)型

1.局部變量:在任意一個(gè)函數(shù)內(nèi)部定義的變量(不加static),初始值不確定,出函數(shù)自動(dòng)銷(xiāo)毀,存放于棧區(qū)。 使用static修飾這個(gè)變量時(shí),編譯器會(huì)把她初始化為零,存儲(chǔ)于靜態(tài)區(qū),函數(shù)返回時(shí)值保持不變,出函數(shù)不銷(xiāo)毀,下一次進(jìn)入函數(shù)依然存在。根本原因——static修飾的局部變量存儲(chǔ)在靜態(tài)區(qū)。

2.全局變量 :普通全局變量定義在函數(shù)體外部,在靜態(tài)區(qū)分配存儲(chǔ)空間,編譯器自動(dòng)對(duì)其初始化。普通全局變量對(duì)整個(gè)工程可見(jiàn),其他文件使用關(guān)鍵字extern外部聲明后可以直接使用。 靜態(tài)全局變量僅對(duì)當(dāng)前文件可見(jiàn),其他文件不可訪問(wèn),其他文件可以定義與其同名的變量,兩者互不影響。 在定義不需要與其他文件共享的全局變量時(shí),加上static關(guān)鍵字能夠有效地降低程序模塊之間的耦合,避免不同文件同名變量的沖突,且不會(huì)誤使用。

3.函數(shù):在函數(shù)的返回類(lèi)型前加上static,就是靜態(tài)函數(shù)。例如:static int main() 靜態(tài)函數(shù)只能在聲明它的文件可見(jiàn),其他文件不能引用該函數(shù)。不同文件可以使用相同名字靜態(tài)函數(shù) 非靜態(tài)函數(shù)可以在另一個(gè)文件直接引用。

二、static關(guān)鍵字的用法

1.當(dāng)使用普通局部變量時(shí),如圖,int a是一個(gè)局部變量,每次出函數(shù)后自動(dòng)銷(xiāo)毀,所以打印出"6666666666";

當(dāng)使用靜態(tài)局部變量時(shí),如圖。static修飾的局部變量除了局部范圍后不會(huì)銷(xiāo)毀,下一次進(jìn)入函數(shù)依然存在。

2.如圖 ,static聲名的函數(shù)不能被另一個(gè)文件引用

三、static關(guān)鍵字的原理

因?yàn)閟tatic修飾的局部變量是存儲(chǔ)在靜態(tài)區(qū)的,static修飾全局變量時(shí),實(shí)際改變的是變量的存儲(chǔ)位置。 局部變量放在棧區(qū)的,被static修飾后放在了靜態(tài)區(qū)。從而導(dǎo)致除了作用域依然存在,生命周期并沒(méi)有結(jié)束

如圖為存儲(chǔ)區(qū)示意圖

總結(jié)

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

相關(guān)文章

  • 用c語(yǔ)言實(shí)現(xiàn)一個(gè)電話(huà)薄(附完整代碼)

    用c語(yǔ)言實(shí)現(xiàn)一個(gè)電話(huà)薄(附完整代碼)

    大家好,本篇文章主要講的是用c語(yǔ)言實(shí)現(xiàn)一個(gè)電話(huà)薄(附完整代碼),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2022-01-01
  • 基于C++和MFC開(kāi)發(fā)象棋程序

    基于C++和MFC開(kāi)發(fā)象棋程序

    這篇文章主要為大家詳細(xì)介紹了基于C++和MFC開(kāi)發(fā)象棋程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • c語(yǔ)言 malloc函數(shù)詳解

    c語(yǔ)言 malloc函數(shù)詳解

    這篇文章主要介紹了c語(yǔ)言 malloc函數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • vscode和cmake編譯多個(gè)C++文件的實(shí)現(xiàn)方法

    vscode和cmake編譯多個(gè)C++文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了vscode和cmake編譯多個(gè)C++文件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 解決gcc編譯報(bào)錯(cuò)unknown type name ‘bool‘問(wèn)題

    解決gcc編譯報(bào)錯(cuò)unknown type name ‘bool‘問(wèn)題

    這篇文章主要介紹了解決gcc編譯報(bào)錯(cuò)unknown type name ‘bool‘問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn)(推薦)

    使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn)(推薦)

    這篇文章主要介紹了使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn),本文主要分析實(shí)踐中常見(jiàn)的、因?yàn)閷?duì)原理不清楚而搞出來(lái)的產(chǎn)品里的坑,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 使用C++17實(shí)現(xiàn)JSON庫(kù)設(shè)計(jì)思路示例全解

    使用C++17實(shí)現(xiàn)JSON庫(kù)設(shè)計(jì)思路示例全解

    這篇文章主要為大家介紹了使用C++17實(shí)現(xiàn)JSON庫(kù)設(shè)計(jì)思路示例全解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C語(yǔ)言可變參數(shù)列表的用法與深度剖析

    C語(yǔ)言可變參數(shù)列表的用法與深度剖析

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言可變參數(shù)列表的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C語(yǔ)言柔性數(shù)組詳解

    C語(yǔ)言柔性數(shù)組詳解

    這篇文章主要介紹了C語(yǔ)言柔性數(shù)組,通過(guò)實(shí)例分析了不完整類(lèi)型、結(jié)構(gòu)體及柔性數(shù)組等概念,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • C++ 操作系統(tǒng)內(nèi)存分配算法的實(shí)現(xiàn)詳解

    C++ 操作系統(tǒng)內(nèi)存分配算法的實(shí)現(xiàn)詳解

    本文主要介紹了在動(dòng)態(tài)分區(qū)管理方式下采用不同的分配算法實(shí)現(xiàn)主存分配和實(shí)現(xiàn)主存回收,旨在幫助學(xué)生理解在動(dòng)態(tài)分區(qū)管理方式下應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收。感興趣的可以了解一下
    2021-11-11

最新評(píng)論