1、靜態(tài)變量就是程序在執(zhí)行前就已經(jīng)可以確定的地址的變量。普通變量則是在程序執(zhí)行后才分配的地址的變量。所以靜態(tài)變量對整個程序都是可見的,普通變量只能被給其分配地址的模塊使用,超出這個模塊普通變量的生命周期結(jié)束。
商州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,商州網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為商州千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的商州做網(wǎng)站的公司定做!
2、靜態(tài)變量,就是在定義的時候,有static 修飾的變量,形式為 static TYPE var_name = init_value;而動態(tài)變量,形式為 TYPE var_name = init_value;即沒有static 修飾。其中的=init_value均可省略。
3、最大的區(qū)別就是靜態(tài)變量在其作用域里的值會有一個儲存空間,而這個空間在程序知結(jié)束之前是不會被刪除的,所以靜態(tài)變量在執(zhí)行程序時會保留前一次執(zhí)行的值,也就是只能被初始化一次。而動態(tài)變量是可以一直處于賦值道語句中。
用static聲明的變量是靜態(tài)變量,比如static int a =4;這個a的初始值為4(僅僅是初始值),并且這個變量是一直存在的。幾個a并不是同一個a,我們可以把程序中的a改一下名字,方便理解。
其實是這樣的。靜態(tài)變量在內(nèi)存中存儲的位置,與全局變量是同一個區(qū)域。所以,在編譯期間,它的存儲和大小就已經(jīng)確定了,也就是已經(jīng)分配了空間了。而在c語言中,“分配內(nèi)存”往往看做是變量被定義的一個標(biāo)志。
靜態(tài)變量是一種生存期為整個源程序的量。雖然離開定義它的函數(shù)后不能使用,但如再次調(diào)用定義它的函數(shù)時,它又可繼續(xù)使用,而且保存了前次被調(diào)用后留下的值。
c語言中靜態(tài)變量作常量使用,用于存儲常數(shù)??捎胏onst,constant或final等關(guān)鍵字標(biāo)識,其值就會在編譯時設(shè)定,并且無法在運行時改變。
靜態(tài)外部變量只限于本文件范圍內(nèi)有效,不能被其他文件引用。靜態(tài)局部變量只能被定義變量所在的函數(shù)引用,且每次調(diào)用此函數(shù)結(jié)束時靜態(tài)局部變量值保留,作為下次調(diào)用此函數(shù)時該變量的初值。
靜態(tài)變量屬于靜態(tài)存儲方式,屬于靜態(tài)存儲方式的變量卻不一定就是靜態(tài)變量。在C語言中,static關(guān)鍵字的作用如下:在修飾變量的時,static修飾的靜態(tài)局部變量只執(zhí)行一次,而且延長了局部變量的生命周期,直到程序運行結(jié)束以后才釋放。
把全局變量改變?yōu)殪o態(tài)變量 后是改變了它的作用域, 限制了它的使用范圍。因此static 這個說明符在不同的地方所起的作用是不同的。
static關(guān)鍵字在C語言中用于聲明一個靜態(tài)的局部變量。
有兩種用法:static修飾局部變量,成為一個局部靜態(tài)變量。