static關(guān)鍵字在c語(yǔ)言中用于限制變量的作用域和生命周期。限制文件局部變量的作用域,使其只在本文件中訪問(wèn)。限制函數(shù)局部變量的作用域,使其只在本函數(shù)中訪問(wèn)。使得文件作用域變量在程序運(yùn)行期間一直存在。使得函數(shù)作用域變量在每次進(jìn)入函數(shù)時(shí)創(chuàng)建,離開(kāi)時(shí)銷毀,但每次進(jìn)入時(shí)保留其值。
static在C語(yǔ)言中的作用
作用:
static關(guān)鍵字在C語(yǔ)言中用于限制變量的作用域和生命周期。
變量作用域:
文件局部變量:使用static聲明的文件內(nèi)變量只能在本文件中訪問(wèn)。
函數(shù)局部變量:使用static聲明的函數(shù)內(nèi)變量只能在本函數(shù)中訪問(wèn)。
變量生命周期:
文件作用域:使用static聲明的文件內(nèi)變量在程序運(yùn)行期間一直存在。
函數(shù)作用域:使用static聲明的函數(shù)內(nèi)變量在進(jìn)入函數(shù)時(shí)創(chuàng)建,在離開(kāi)函數(shù)時(shí)銷毀,但每次進(jìn)入函數(shù)時(shí)都會(huì)保留其值。
使用場(chǎng)景:
限制變量可見(jiàn)性:防止其他文件或函數(shù)意外訪問(wèn)變量。
實(shí)現(xiàn)單例:確保某個(gè)變量在整個(gè)程序中只有一個(gè)實(shí)例。
保持變量值:使函數(shù)內(nèi)變量在每次調(diào)用函數(shù)時(shí)都能保留其值。
保存數(shù)據(jù):在程序退出后繼續(xù)保留一些必要的數(shù)據(jù)。
示例:
文件局部變量:
<code class="c">static int globalVariable; // 只能在本文件中訪問(wèn)</code>
登錄后復(fù)制
函數(shù)局部變量:
<code class="c">static int functionVariable; // 只能在本函數(shù)中訪問(wèn),每次調(diào)用函數(shù)時(shí)保持值</code>
登錄后復(fù)制
注意:
不要將static用于全局變量,否則它可能會(huì)導(dǎo)致不可預(yù)料的副作用。
static變量的初始化值必須為常量表達(dá)式或0。