js 全局變量 什么叫靜態(tài)變量?與動(dòng)態(tài)變量的差別在哪?
什么叫靜態(tài)變量?與動(dòng)態(tài)變量的差別在哪?動(dòng)態(tài)變量和靜態(tài)變量之間的定義和區(qū)別如下:1。在定義中,靜態(tài)變量比動(dòng)態(tài)變量多了一個(gè)關(guān)鍵字static,例如:dynamic variables:inti,stati
什么叫靜態(tài)變量?與動(dòng)態(tài)變量的差別在哪?
動(dòng)態(tài)變量和靜態(tài)變量之間的定義和區(qū)別如下:
1。在定義中,靜態(tài)變量比動(dòng)態(tài)變量多了一個(gè)關(guān)鍵字static,例如:dynamic variables:inti,static variables:staticnti
2。在子例程中,動(dòng)態(tài)變量每次被調(diào)用時(shí)都從零開始,原始數(shù)據(jù)不會(huì)被保留。當(dāng)調(diào)用靜態(tài)變量時(shí),原始值不會(huì)改變,例如:Main(){inti}For(I=0I<5i)fun()//fun1()}voidfun()//輸出結(jié)果為11111{intjj printf(%d,J)}voidfun 1()//輸出結(jié)果為12345{staticintjj printf(%d,J) }
靜態(tài)變量有什么特點(diǎn)?
靜態(tài)局部變量
它與局部變量的不同之處在于,當(dāng)函數(shù)退出時(shí),這個(gè)變量總是存在的,但不能被其他函數(shù)使用
最后的結(jié)果將被保存。其他變量與局部變量相同。
2. turboc2.0允許將一個(gè)大的程序劃分成幾個(gè)獨(dú)立的模塊文件分別編譯,然后將各個(gè)模塊的目標(biāo)文件連接在一起,從而提高編譯速度,方便軟件的管理和維護(hù)。Static
全范圍變量是只在定義它的源文件中可見,而在其他源文件中不可見的變量。它與
full variable的區(qū)別在于full variable可以解釋為外部變量并由其他源文件使用,而靜態(tài)full variable不能解釋為外部變量,即只能由源文件使用。
靜態(tài)變量是什么意思?
靜態(tài)變量是指在全局存儲(chǔ)區(qū)域中分配的變量與全局變量分配在同一存儲(chǔ)區(qū)域中,這與在堆棧中分配的變量不同。靜態(tài)變量只在變量的范圍內(nèi)可見,而全局變量則隨處可見。這就是靜態(tài)變量和全局變量之間的區(qū)別。例如:int aint func1(){static int b=0b}Return b}int func2(){int c=0C Return c}int main(){a=1/*b=1*/printf(%dn”,func1())printf(%dn”,func1())printf(%dn”,func2())printf(%dn”,func2())}其中a是全局變量,b是靜態(tài)變量,c是堆棧變量。a=1中沒(méi)有錯(cuò)誤語(yǔ)句B=1是錯(cuò)誤的,因?yàn)锽只在func中可見。靜態(tài)變量B在程序運(yùn)行時(shí)立即分配,并在程序完成后消失。靜態(tài)類型變量只初始化一次。因此,每次運(yùn)行func1時(shí),返回值都會(huì)增加1。但是,如何運(yùn)行func2,返回值是1,因?yàn)镃每次都被重新分配并初始化為0。程序的執(zhí)行結(jié)果是1211