欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言函數(shù)內(nèi)靜態(tài)變量,靜態(tài)變量 C語(yǔ)言

C語(yǔ)言中的靜態(tài)變量

用static聲明的變量是靜態(tài)變量,比如static int a =4;這個(gè)a的初始值為4(僅僅是初始值),并且這個(gè)變量是一直存在的。

內(nèi)丘網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,內(nèi)丘網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為內(nèi)丘上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的內(nèi)丘做網(wǎng)站的公司定做!

幾個(gè)a并不是同一個(gè)a,我們可以把程序中的a改一下名字,方便理解。如下:

#include stdio.h

int fun(int n)

{

static int a =3;

int t =0;

if(n%2)

{

static int b =4;

t+=b++;

}

else

{static int c =5;

t+=c++;

}

return t+=a++;

}

main()

{

int i,s=0;

for (i=0;i3;i++)

s+=fun(i);

printf ("%d\n",s);

}

開始在稿紙上分析。

C語(yǔ)言動(dòng)態(tài)變量和靜態(tài)變量的區(qū)別

一、形式不同:

靜態(tài)變量是在定義的時(shí)候,有static 修飾的變量,形式為static TYPE var_name = init_value;

動(dòng)態(tài)變量,形式為TYPE var_name = init_value;即沒有static 修飾,其中的=init_value均可省略。

二、作用不同:

動(dòng)態(tài)全局變量:作用域?yàn)檎麄€(gè)項(xiàng)目,即最終編譯成可執(zhí)行文件的所有文件中均可以使用動(dòng)態(tài)全局變量,生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間。

靜態(tài)全局變量:作用域?yàn)楫?dāng)前文件,從定義/聲明位置到文件結(jié)尾,生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間。

常量使用

靜態(tài)變量也可以用于存儲(chǔ)常數(shù)。具體來(lái)說(shuō),靜態(tài)變量(全局變量及匯編語(yǔ)言里定義的符號(hào)亦同)可用const,constant或final(根據(jù)語(yǔ)言決定)等關(guān)鍵字標(biāo)識(shí),這時(shí)其值就會(huì)在編譯時(shí)設(shè)定,并且無(wú)法在運(yùn)行時(shí)改變。

編譯器通常將靜態(tài)常量與文本一起置于目標(biāo)文件的文本區(qū)域,而非常量初始化數(shù)據(jù)則置于數(shù)據(jù)區(qū);而如若有需要,有些編譯器還可選擇為其開辟專用區(qū);為防止常數(shù)變量被錯(cuò)誤的指針寫入覆蓋,亦可在這塊區(qū)域啟用內(nèi)存保護(hù)機(jī)制。

以上內(nèi)容參考:百度百科-靜態(tài)變量

c語(yǔ)言中靜態(tài)變量是怎么用的

#include"stdio.h"

void

main()

{

int

f(int);

int

a=2,i;

for(i=0;i3;i++)

printf("%d

",f(a));

}

int

f(int

a)

{

auto

int

b=0;

//aubo為自動(dòng)變量的標(biāo)志,則b為自動(dòng)變量

static

int

c=3;//static

為靜態(tài)局部變量的標(biāo)志,則c為靜態(tài)局部變量

b=b+1;

//b為自動(dòng)變量,則b一直等于1

c=c+1;

//c為靜態(tài)局部變量,則c隨著for循環(huán)分別為4,5,6

return(a+b+c);

}

所以運(yùn)行的結(jié)果為:7,8,9

注:靜態(tài)局部變量(靜態(tài)變量)是在編譯時(shí)賦初值的,即值賦初值一次,在程序運(yùn)行時(shí)它已有初值,以后每次調(diào)用函數(shù)式不在重復(fù)賦初值而只在保留商城函數(shù)調(diào)用結(jié)束時(shí)的值。

c語(yǔ)言中 函數(shù)調(diào)用結(jié)束后,函數(shù)內(nèi)定義的靜態(tài)變量所

static不是允許修改,你估計(jì)和const搞混了,static表示靜態(tài)存儲(chǔ),直到整個(gè)程序結(jié)束變量值才會(huì)從存儲(chǔ)區(qū)釋放,靜態(tài)變量又分為全局靜態(tài)變量和局部靜態(tài)變量,

全局變量與全局靜態(tài)變量的區(qū)別:

(a)若程序由一個(gè)源文件構(gòu)成時(shí),全局變量與全局靜態(tài)變量沒有區(qū)別。

(b)若程序由多個(gè)源文件構(gòu)成時(shí),全局變量與全局靜態(tài)變量不同:全局靜態(tài)變量使得該變量成為定義該變量的源文件所獨(dú)享,即:全局靜態(tài)變量對(duì)組成該程序的其它源文件是無(wú)效的。

(c)具有外部鏈接的靜態(tài);可以在所有源文件里調(diào)用;除了本文件,其他文件可以通過(guò)extern的方式引用;

靜態(tài)全局變量的作用:

(a)不必?fù)?dān)心其它源文件使用相同變量名,彼此相互獨(dú)立。

(b)在某源文件中定義的靜態(tài)全局變量不能被其他源文件使用或修改。

(c) 只能在本文件中使用!具有內(nèi)部鏈接的靜態(tài);不允許在其他文件里調(diào)用;

靜態(tài)局部變量和作用域和局部變量一樣,不過(guò)生存周期不一樣,局部變量在定義局部變量的函數(shù)調(diào)用完之后就從內(nèi)存中釋放其值,而靜態(tài)局部變量不釋放,等整個(gè)程序全部執(zhí)行結(jié)束后才會(huì)從內(nèi)存中釋放。

有關(guān)c語(yǔ)言函數(shù)靜態(tài)變量

靜態(tài)變量是一種生存期為整個(gè)源程序的量。雖然離開定義它的函數(shù)后不能使用,但如再次調(diào)用定義它的函數(shù)時(shí),它又可繼續(xù)使用,

而且保存了前次被調(diào)用后留下的值。

第一個(gè)printf(

"%d\n",

func(k+=100)

);

k+=100,k就是200;

x++;

y++;

k++;

x=2,y=11,k=201;

所以第一次打印是214

第二個(gè)printf(

"%d\n",

func(k+=100)

);

k+=100,k就是300;

x++;

y++;

k++;

x=2,y=12,k=301;(y是靜態(tài)變量,原值不變)

所以第二次打印是315

第三個(gè)printf(

"%d\n",

func(k+=100)

);

k+=100,k就是400;

x++;

y++;

k++;

x=2,y=13,k=401;(y是靜態(tài)變量,原值不變)

所以第二次打印是416

C語(yǔ)言中函數(shù)內(nèi)部聲明的靜態(tài)變量的在函數(shù)外可以訪問(wèn)嗎?

不可以

只有全局變量才可以

靜態(tài)變量,只是里面的值不會(huì)因?yàn)楹瘮?shù)調(diào)用結(jié)束而還原

當(dāng)前文章:c語(yǔ)言函數(shù)內(nèi)靜態(tài)變量,靜態(tài)變量 C語(yǔ)言
標(biāo)題鏈接:http://chinadenli.net/article22/dsgpjcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化電子商務(wù)微信公眾號(hào)定制開發(fā)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)