第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C語言中 變量作用域的區(qū)別

C語言中 變量作用域的區(qū)別

C
狐的傳說 2019-03-16 11:11:36
和生存周期怎么區(qū)別能舉一個(gè)兩者不同的例子嗎
查看完整描述

3 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

總的分為局部變量和全局變量:局部變量又可分為動(dòng)態(tài)局部變量(沒特殊聲明的變量一般都為動(dòng)態(tài)局部變量)和靜態(tài)局部變量(用static關(guān)鍵字聲明的變量如:static int a;);兩者的區(qū)別在于:靜態(tài)的局部變量生存期比動(dòng)態(tài)的局部變量來的長(zhǎng),動(dòng)態(tài)的局部變量的生存期為所定義的范圍內(nèi),如在函數(shù)內(nèi)定義的,函數(shù)結(jié)束,變量也跟著結(jié)束,變量的值不會(huì)保存下來。而靜態(tài)變量的生存期為整個(gè)源程序(也可說是一個(gè)文件,不同環(huán)境不同稱呼)。而兩者的作用域是一樣。只能在定義他的函數(shù)內(nèi)起作用,離開了這個(gè)函數(shù)就不起作用了。
全局變量:在函數(shù)之外定義的變量稱為全局變量。全局變量可以為本文件中其他函所共用(作用域),它的有效范圍(生存期)從定義變量開始到文件結(jié)束。
如果在同一個(gè)源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即全局變量不起作用。
下面來看一個(gè)例子:
#include"stdio.h"
int d=1; //聲明一個(gè)全局變量
int fun(int p)
{
static int d=5; //定義一個(gè)靜態(tài)局部變量 d初值為5 //第二次調(diào)用時(shí)沒有執(zhí)行此行
d=d+p; //此時(shí)局部變量d的值為9,(第一次調(diào)用) //第二次調(diào)用是局部變量d 的值為13,因?yàn)樯弦淮螆?zhí)行完后d的值為9,
printf("%d",d); //第一次輸出為9,//第二次輸出13
}
void main()
{
int a=3;
d=d+a; //此時(shí)d的值為4;a變量的值為3,全局變量d的值為1。
for(i=0;i<2;i++)
fun(d); //此處的d值為4,傳送給形參p,再一次調(diào)用時(shí)還是將4傳給開參p
printf("d=%d",d); //輸出d的值為4.此處的d為全局變量。
}

看以上內(nèi)容時(shí),你先把程序看一篇,然后把會(huì)值代進(jìn)去遠(yuǎn)算,每一次看注釋時(shí)在同一行中只要看到第二個(gè)”//“時(shí)結(jié)束.第2個(gè)“//”為第二次調(diào)用時(shí)看的。



查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

作用域和生存周期是完全不同的兩個(gè)概念。作用域可以看作是變量的一個(gè)有效范圍,就像網(wǎng)游中的攻擊范圍一樣;生存周期可以看成是一個(gè)變量能存在多久,能在那些時(shí)段存在,就像網(wǎng)游中的魔法持續(xù)時(shí)間……
簡(jiǎn)單的以一個(gè)局部變量來舉個(gè)例子:
main函數(shù)中聲明了變量a,那么a的作用域就是main函數(shù)內(nèi)部,脫離了main函數(shù),a就無法使用了,main函數(shù)之外的函數(shù)或者方法,都無法去使用a。那么a的生存周期是指a在那些時(shí)候存在,具體到這個(gè)例子,a什么時(shí)候存在,要取決于main函數(shù),或者說,main函數(shù)只要被調(diào)用,且調(diào)用沒有完成,那么a就將存在。除此以外的情況,a都將被釋放。
生存周期也可以理解為從聲明到釋放的之間的時(shí)間。
變量具體可以分為全局變量、靜態(tài)全局變量、靜態(tài)局部變量和局部變量。
按存儲(chǔ)區(qū)域分:全局變量、靜態(tài)全局變量和靜態(tài)局部變量都存放在內(nèi)存的全局?jǐn)?shù)據(jù)區(qū),局部變量存放在內(nèi)存的棧區(qū)
按作用域分:全局變量在整個(gè)工程文件內(nèi)都有效;靜態(tài)全局變量只在定義它的文件內(nèi)有效;靜態(tài)局部變量只在定義它的函數(shù)內(nèi)有效,只是程序僅分配一次內(nèi)存,函數(shù)返回后,該變量不會(huì)消失;局部變量在定義它的函數(shù)內(nèi)有效,但是函數(shù)返回后失效。
全局變量和靜態(tài)變量如果沒有手工初始化,則由編譯器初始化為0。局部變量的值不可知。



查看完整回答
反對(duì) 回復(fù) 2019-03-25
  • 3 回答
  • 0 關(guān)注
  • 457 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)