快速了解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)鍵字修飾的局部變量的初始化
以下面兩個變量a和變量為b進(jìn)行說明,在編譯過程中,發(fā)現(xiàn)變量a和b是靜態(tài)變量,會標(biāo)識變量a與b,等到程序運行的時候,在主函數(shù)調(diào)用之前,對變量a和變量b分配空間,并對變量a進(jìn)行初始化,由于變量b是由函數(shù)fun傳遞的參數(shù)進(jìn)行初始化的,故會在程序調(diào)用函數(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;(運行該代碼的時候進(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++實現(xiàn)LeetCode(14.最長共同前綴)
這篇文章主要介紹了C++實現(xiàn)LeetCode(14.最長共同前綴),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++ Boost MetaStateMachine定義狀態(tài)機(jī)超詳細(xì)講解
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱2022-12-12
c++基礎(chǔ)語法:構(gòu)造函數(shù)初始化列表
構(gòu)造函數(shù)需要初始化的數(shù)據(jù)成員,不論是否顯示的出現(xiàn)在構(gòu)造函數(shù)的成員初始化列表中,都會在該處完成初始化,并且初始化的順序和其在聲明時的順序是一致的,與列表的先后順序無關(guān)2013-09-09

