c語言中靜態(tài)變量作常量使用,用于存儲常數(shù)??捎胏onst,constant或final等關(guān)鍵字標(biāo)識,其值就會在編譯時設(shè)定,并且無法在運(yùn)行時改變。
創(chuàng)新互聯(lián)建站主營麟游網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),麟游h5微信小程序開發(fā)搭建,麟游網(wǎng)站營銷推廣歡迎麟游等地區(qū)企業(yè)咨詢
其實(shí)是這樣的。靜態(tài)變量在內(nèi)存中存儲的位置,與全局變量是同一個區(qū)域。所以,在編譯期間,它的存儲和大小就已經(jīng)確定了,也就是已經(jīng)分配了空間了。而在c語言中,“分配內(nèi)存”往往看做是變量被定義的一個標(biāo)志。
用static聲明的變量是靜態(tài)變量,比如static int a =4;這個a的初始值為4(僅僅是初始值),并且這個變量是一直存在的。幾個a并不是同一個a,我們可以把程序中的a改一下名字,方便理解。
靜態(tài)變量,就是在定義的時候,有static 修飾的變量,形式為 static TYPE var_name = init_value;而動態(tài)變量,形式為 TYPE var_name = init_value;即沒有static 修飾。其中的=init_value均可省略。
靜態(tài)變量就是程序在執(zhí)行前就已經(jīng)可以確定的地址的變量。普通變量則是在程序執(zhí)行后才分配的地址的變量。所以靜態(tài)變量對整個程序都是可見的,普通變量只能被給其分配地址的模塊使用,超出這個模塊普通變量的生命周期結(jié)束。
靜態(tài)變量屬于靜態(tài)存儲方式,屬于靜態(tài)存儲方式的變量卻不一定就是靜態(tài)變量。在C語言中,static關(guān)鍵字的作用如下:在修飾變量的時,static修飾的靜態(tài)局部變量只執(zhí)行一次,而且延長了局部變量的生命周期,直到程序運(yùn)行結(jié)束以后才釋放。
有兩種用法:static修飾局部變量,成為一個局部靜態(tài)變量。
把全局變量改變?yōu)殪o態(tài)變量 后是改變了它的作用域, 限制了它的使用范圍。因此static 這個說明符在不同的地方所起的作用是不同的。
靜態(tài)外部變量只限于本文件范圍內(nèi)有效,不能被其他文件引用。靜態(tài)局部變量只能被定義變量所在的函數(shù)引用,且每次調(diào)用此函數(shù)結(jié)束時靜態(tài)局部變量值保留,作為下次調(diào)用此函數(shù)時該變量的初值。
形式不同:靜態(tài)變量是在定義的時候,有static 修飾的變量,形式為static TYPE var_name = init_value;動態(tài)變量,形式為TYPE var_name = init_value;即沒有static 修飾,其中的=init_value均可省略。
c語言中靜態(tài)變量作常量使用,用于存儲常數(shù)??捎胏onst,constant或final等關(guān)鍵字標(biāo)識,其值就會在編譯時設(shè)定,并且無法在運(yùn)行時改變。
用static聲明的變量是靜態(tài)變量,比如static int a =4;這個a的初始值為4(僅僅是初始值),并且這個變量是一直存在的。幾個a并不是同一個a,我們可以把程序中的a改一下名字,方便理解。