快速了解C語言靜態(tài)關(guān)鍵字static的作用
靜態(tài)關(guān)鍵字static
C語言中,static關(guān)鍵字修飾變量和函數(shù)
1、局部變量
2、全局變量
3、函數(shù)
修飾局部變量
1、用靜態(tài)關(guān)鍵字static修飾的局部變量,在編譯的過程中,會在數(shù)據(jù)區(qū)為該變量開辟空間,并對其進(jìn)行初始化,如果代碼中未對其進(jìn)行初始化,則系統(tǒng)默認(rèn)初始化為0
2、用static修飾的局部變量,會延長局部變量的壽命,超出函數(shù)的生存期
3、對靜態(tài)關(guān)鍵字修飾的局部變量的初始化
以下面兩個(gè)變量a和變量為b進(jìn)行說明,在編譯過程中,發(fā)現(xiàn)變量a和b是靜態(tài)變量,會標(biāo)識變量a與b,等到程序運(yùn)行的時(shí)候,在主函數(shù)調(diào)用之前,對變量a和變量b分配空間,并對變量a進(jìn)行初始化,由于變量b是由函數(shù)fun傳遞的參數(shù)進(jìn)行初始化的,故會在程序調(diào)用函數(shù)時(shí)對變量b進(jìn)行初始化,對變量b初始化之前,會檢查變量b的標(biāo)識位,如果標(biāo)識位為0,就會拿函數(shù)參數(shù)x對其進(jìn)行初始化,標(biāo)識位為1就不進(jìn)行初始化
static int a = 0;
(編譯過程進(jìn)行初始化)
static int b = x;
(運(yùn)行該代碼的時(shí)候進(jìn)行初始化)
void fun(int x) { static int a = 10; static int b = x; a++; b++; }
修飾全局變量變量
用靜態(tài)關(guān)鍵字static修飾全局變量的意義、
可見性不一樣,加上靜態(tài)關(guān)鍵字后,只對當(dāng)前文件有效,對其他文件無效,并且有效區(qū)間從定義位置開始,一直到本文件結(jié)束
修飾函數(shù)
靜態(tài)關(guān)鍵字static修飾函數(shù)的意義
可見性不一樣,在函數(shù)前加上靜態(tài)關(guān)鍵字static,該函數(shù)也只能是當(dāng)前文件可用,其他文件不可用
到此這篇關(guān)于快速了解C語言靜態(tài)關(guān)鍵字static的作用的文章就介紹到這了,更多相關(guān)C語言static關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言 數(shù)據(jù)結(jié)構(gòu)中求解迷宮問題實(shí)現(xiàn)方法
這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)中求解迷宮問題實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-03-03c++ builder TreeView控件節(jié)點(diǎn)遍歷代碼
這篇文章介紹了c++ builder TreeView控件節(jié)點(diǎn)遍歷代碼,有需要的朋友可以參考一下2013-09-09C++中使用FFmpeg適配自定義編碼器的實(shí)現(xiàn)方法
本文介紹了在C++中使用FFmpeg庫進(jìn)行自定義編碼器適配的實(shí)現(xiàn)方法。文章通過具體的代碼示例,介紹了FFmpeg的基本使用方法和自定義編碼器的實(shí)現(xiàn)過程,幫助讀者了解如何在C++中進(jìn)行音視頻編碼和解碼的開發(fā)工作,并能夠?qū)崿F(xiàn)自定義的編碼器適配2023-04-04C++實(shí)現(xiàn)尋找最低公共父節(jié)點(diǎn)的方法
這篇文章主要介紹了C++實(shí)現(xiàn)尋找最低公共父節(jié)點(diǎn)的方法,是數(shù)據(jù)結(jié)構(gòu)中二叉樹的一個(gè)經(jīng)典算法,有一定的借鑒價(jià)值,需要的朋友可以參考下2014-09-09實(shí)例講解在C++的函數(shù)中變量參數(shù)及默認(rèn)參數(shù)的使用
這篇文章主要介紹了在C++的函數(shù)中變量參數(shù)及默認(rèn)參數(shù)的使用,是C++函數(shù)入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01一盤王者的時(shí)間用C語言實(shí)現(xiàn)三子棋
相信我們都玩過三子棋,規(guī)則很簡單,但想用c語言做出這個(gè)游戲,事實(shí)上也是比較簡單的,下面通過c語言進(jìn)行對五子棋的分析2022-02-02