版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
變量的作用域函數(shù)定義變量的三種情況在一個(gè)函數(shù)體的聲明部分定義在一個(gè)函數(shù)體內(nèi),復(fù)合語句的開始處定義在所有函數(shù)外面定義局部變量定義在一個(gè)函數(shù)(包括主函數(shù))內(nèi)部定義的變量稱為局部變量(也稱為內(nèi)部變量)局部變量只在本函數(shù)內(nèi)起作用,退出本函數(shù),變量即被釋放(清除),其值就不能再被引用說明函數(shù)體內(nèi)復(fù)合語句中定義的變量,其作用域僅限于復(fù)合語句以內(nèi),即該變量定義的大括號(hào)對(duì)之內(nèi)形參也是局部變量【例1:】局部變量的作用范圍voidmain(){intx,y;…
{inti,j;…}}intmax(intx,inty){intz;…..}i和j有效范圍x和y有效范圍x、y、z有效范圍【例2:】在多個(gè)函數(shù)中出現(xiàn)同名的局部變量intf(inta){
a=a+4;return(a);}voidmain(){inta=3;printf(“%d\n”,f(a));printf(“%d”,a);}運(yùn)行結(jié)果:形參a的作用范圍main函數(shù)中的局部變量a的作用范圍73全局變量(外部變量)定義在所有函數(shù)外面定義的變量稱為全局變量全局變量的默認(rèn)作用范圍是從定義變量的位置開始到本程序文件的結(jié)束可使用全局變量獲得多于一個(gè)的返回值,增強(qiáng)函數(shù)之間的數(shù)據(jù)聯(lián)系通道【例3:】全局變量的作用范圍intp=1,q=5;//外部變量floatf1(inta)//定義函數(shù)f1{intb,c;…}charc1,c2;//外部變量
charf2(intx,inty)//定義函數(shù)f2{inti,j;…}voidmain()//主函數(shù)
{intm,n;…}全局變量c1,c2的作用范圍全局變量p,q的作用范圍全局變量(外部變量)說明若在定義全局變量之前需要引用該全局變量,則需要進(jìn)行聲明,一般格式為:
extern類型名變量名;【例4:】區(qū)分全局變量的聲明與定義externintn;
//全局變量的聲明voidfun(){n-=20;}intn=100;
//全局變量的定義voidmain(){printf(“n=%d\n”,n);for(;n>=60;){fun();printf(“n=%d\n”,n);}}全局變量的定義與聲明不是一回事。定義只能有一次,而全局變量的聲明可進(jìn)行多次在同一源文件中,全局變量與局部變量同名,則局部變量在其作用范圍內(nèi)屏蔽全局變量,即局部變量起作用,全局變量不起作用【例5:】外部變量與局部變量同名#include<stdio.h>inta=3,b=5;//定義全局變量a,bvoidmain(){intmax(inta,intb);//聲明函數(shù)原型inta=8;//定義主函數(shù)的局部變量a
printf(“%d”,max(a,b));//訪問局部變量a、全局變量b}intmax(inta,intb)//形參a,b為max函數(shù)的局部變量{intc;c=a>b?a:b;//訪問局部變量a、breturn(c);}a=8b=5運(yùn)行結(jié)果為:8由于函數(shù)的調(diào)用只能帶回一個(gè)返回值,因此有時(shí)可以利用全局變量增加與函數(shù)聯(lián)系的渠道,從函數(shù)得到一個(gè)以上的返回值若在一個(gè)函數(shù)中改變了全局變量的值,則其后引用該變量時(shí),得到的是被改變了的值【例6:】有一個(gè)一維數(shù)組,內(nèi)放10個(gè)學(xué)生成績(jī),編寫一個(gè)函數(shù),求出平均分,最高分和最低分解題思路希望從函數(shù)得到3個(gè)結(jié)果值可以把平均值作為函數(shù)值返回,另外兩個(gè)(最大值、最小值)可以使用全局變量程序?qū)崿F(xiàn)#include<stdio.h>floatMax=0,Min=0;//全局變量floataverage(floatarray[],intn)
//定義函數(shù),第一個(gè)形參為數(shù)組{inti;
floataver,sum=array[0];
Max=Min=array[0];
for(i=1;i<n;i++){
sum=sum+array[i];if(array[i]>Max)Max=array[i];
elseif(array[i]<Min)Min=array[i];
}aver=sum/n;return(aver);//返回平均值
}voidmain(){floatave,score[10];
inti;
for(i=0;i<10;i++)
scanf(“%f”,&score[i]);
ave=average(score,10);
printf(“max=%6.2f\nmin=%6.2f\naverage=%6.2f\n”,Max,Min,ave);}建議非必要時(shí),不要使用全局變量,因?yàn)椋赫加觅Y源多,全局變量在程序的全部執(zhí)行過程中都占用存儲(chǔ)單元。通用性差。因?yàn)楹瘮?shù)在執(zhí)行時(shí)要依賴于其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)數(shù)學(xué)下冊(cè)蘇教版第一單元第10課《列方程解決實(shí)際問題練習(xí)(練習(xí)三)》聽評(píng)課記錄
- 中考道德與法治一輪復(fù)習(xí)八年級(jí)上第2單元遵守社會(huì)規(guī)則 聽課評(píng)課記錄 人教版
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)《小結(jié)練習(xí)》聽評(píng)課記錄6
- 公派出國留學(xué)協(xié)議書范本
- 電商平臺(tái)加盟合作協(xié)議書范本
- 軟件合作開發(fā)合同范本
- 二零二五年度資質(zhì)借用與金融服務(wù)合作協(xié)議:金融機(jī)構(gòu)資質(zhì)借用合同
- 天津市建設(shè)工程施工專業(yè)分包合同范本
- 2025年度餐廚廢棄物收購與冷鏈物流配送服務(wù)合同
- 洗車場(chǎng)場(chǎng)地租賃合同范本
- 污泥處置合作合同模板
- 腦梗死的護(hù)理查房
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):概率與統(tǒng)計(jì)的綜合應(yīng)用(十八大題型)含答案
- 2024-2030年中國紫蘇市場(chǎng)深度局勢(shì)分析及未來5發(fā)展趨勢(shì)報(bào)告
- 銷售人員課件教學(xué)課件
- LED大屏技術(shù)方案(適用于簡(jiǎn)單的項(xiàng)目)
- Lesson 6 What colour is it(教學(xué)設(shè)計(jì))-2023-2024學(xué)年接力版英語三年級(jí)下冊(cè)
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- NB/T 11446-2023煤礦連采連充技術(shù)要求
- 2024年江蘇省蘇州市中考英語試題卷(含標(biāo)準(zhǔn)答案及解析)
- 第五單元任務(wù)二《準(zhǔn)備與排練》教學(xué)設(shè)計(jì) 統(tǒng)編版語文九年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論