static在c語言中是什么意思
c語言中,static用來說明靜態(tài)變量。
1、如果是在函數(shù)外面定義的,那么其效果和全局變量類似,即static說明的變量可以在當(dāng)前c程序文件中使用。
2、如果是在函數(shù)內(nèi)部定義的,那么這個變量只初始化一次,即使再次調(diào)用這個函數(shù),這個static變量也不會再次被初始化,于是,這個變量的取值就會一直保存著,我們再次調(diào)用該函數(shù)時,仍是保存的上一次函數(shù)調(diào)用時保存的結(jié)果。
推薦學(xué)習(xí):c語言視頻教程
在C語言中,static關(guān)鍵字的作用如下:
1、在修飾變量的時,static修飾的靜態(tài)局部變量只執(zhí)行一次,而且延長了局部變量的生命周期,直到程序運(yùn)行結(jié)束以后才釋放。
2、static修飾全局變量的時,這個全局變量只能在本文件中訪問,不能在其它文件中訪問,即便是extern外部聲明也不可以。
3、static修飾一個函數(shù),則這個函數(shù)的只能在本文件中調(diào)用,不能被其他文件調(diào)用。Static修飾的局部變量存放在全局?jǐn)?shù)據(jù)區(qū)的靜態(tài)變量區(qū)。
舉例說明:
static int a; int b; void func(void) { static int c; int d; }
上面程序中,a與b都是全局變量,二者的區(qū)別是,b可以被別的文件使用,a只能在本文件中使用,這是static對全局變量的作用。
c和d的區(qū)別是,d是一個自動變量,func函數(shù)執(zhí)行完后,d會自動被釋放。但c卻不會被釋放,下一次調(diào)用func函數(shù)時,c的值會保留上次的值繼續(xù)使用。