靜態(tài)局部變量存在哪里 局部變量,靜態(tài)全局變量,靜態(tài)局部變量的區(qū)別和聯(lián)系?
局部變量,靜態(tài)全局變量,靜態(tài)局部變量的區(qū)別和聯(lián)系?局部變量與其他兩個(gè)基本不同。局部變量在函數(shù)中定義,范圍是定義位置,以花括號(hào)結(jié)束。每次執(zhí)行definition語(yǔ)句時(shí),系統(tǒng)都會(huì)為變量分配內(nèi)存。當(dāng)作用域結(jié)
局部變量,靜態(tài)全局變量,靜態(tài)局部變量的區(qū)別和聯(lián)系?
局部變量與其他兩個(gè)基本不同。局部變量在函數(shù)中定義,范圍是定義位置,以花括號(hào)結(jié)束。每次執(zhí)行definition語(yǔ)句時(shí),系統(tǒng)都會(huì)為變量分配內(nèi)存。當(dāng)作用域結(jié)束時(shí),內(nèi)存被釋放。另外兩個(gè)在系統(tǒng)運(yùn)行時(shí)分配內(nèi)存,直到程序結(jié)束才會(huì)釋放。也就是說(shuō),局部變量與其他兩個(gè)變量最明顯的區(qū)別如下:1。不同的生命周期。分配時(shí)間不同。不同的分配位置。其他兩個(gè)在這些術(shù)語(yǔ)上是相同的,它們之間的區(qū)別在于范圍。一個(gè)靜態(tài)全局變量,其作用域是定義變更量的文件。靜態(tài)局部變量的范圍和普通局部變量一樣,是從括號(hào)的位置到末尾定義的。
全局變量,靜態(tài)全局變量,靜態(tài)局部變量和局部變量的區(qū)別1?
靜態(tài)全局變量:只要程序系統(tǒng)正在運(yùn)行,則寄存器及其值不會(huì)自動(dòng)清除,并且在任何函數(shù)中都可以使用靜態(tài)局部變量:只要程序系統(tǒng)正在運(yùn)行,則寄存器及其值不會(huì)自動(dòng)清除,僅在定義的函數(shù)范圍內(nèi)可以使用靜態(tài)全局變量:只有在函數(shù)操作行中,寄存器及其值隨函數(shù)結(jié)尾自動(dòng)清除,并且只能在函數(shù)的定義范圍內(nèi)使用
~]//定義位置的差異:static int a//global variable void show(){int b//local variable staticint靜態(tài)全局變量:只要程序系統(tǒng)在運(yùn)行,寄存器及其值就不會(huì)自動(dòng)清除,靜態(tài)局部變量可以用在任何函數(shù)中:只要程序系統(tǒng)在運(yùn)行,寄存器及其值就不會(huì)自動(dòng)清除,只有靜態(tài)全局變量可以用在任何函數(shù)中定義的函數(shù)范圍:只有在函數(shù)運(yùn)行時(shí),寄存器及其值才會(huì)隨著函數(shù)的結(jié)束而自動(dòng)清除,并且只能在定義的函數(shù)范圍內(nèi)使用
(1)函數(shù)中定義了靜態(tài)局部變量,但與自動(dòng)變量不同,它們?cè)诒徽{(diào)用時(shí)存在,在退出函數(shù)時(shí)消失。靜態(tài)局部變量總是存在的,也就是說(shuō),它的生命周期就是整個(gè)源程序。(2) 雖然靜態(tài)局部變量的生存期是整個(gè)源程序,但它的作用域仍然與自動(dòng)變量的作用域相同,即只能用于定義變量的函數(shù)中。退出函數(shù)后,雖然變量繼續(xù)存在,但不能使用。(3) 對(duì)于基本類型的靜態(tài)局部變量,如果初始值未賦值,系統(tǒng)將自動(dòng)賦值為0。如果自動(dòng)變量沒(méi)有給定初始值,則其值是不確定的。根據(jù)靜態(tài)局部變量的特點(diǎn),可以看出它是一種以整個(gè)源文件為生命周期的量。雖然在離開(kāi)定義它的函數(shù)后不能使用它,但是如果再次調(diào)用定義它的函數(shù),并且保存上次調(diào)用后留下的值,則可以繼續(xù)使用它。因此,當(dāng)一個(gè)函數(shù)被多次調(diào)用并且在調(diào)用之間需要保留一些變量的值時(shí),可以考慮靜態(tài)局部變量。雖然使用全局變量也可以達(dá)到上述目的,但全局變量有時(shí)會(huì)產(chǎn)生意想不到的副作用(特別是短全局變量的污染),因此使用局部靜態(tài)變量仍然是合適的??傊o態(tài)局部變量和全局變量最明顯的區(qū)別是全局變量的所有函數(shù)定義后都可以使用,而靜態(tài)局部變量只能在一個(gè)函數(shù)中使用。