




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
變量的作用域函數定義變量的三種情況在一個函數體的聲明部分定義在一個函數體內,復合語句的開始處定義在所有函數外面定義局部變量定義在一個函數(包括主函數)內部定義的變量稱為局部變量(也稱為內部變量)局部變量只在本函數內起作用,退出本函數,變量即被釋放(清除),其值就不能再被引用說明函數體內復合語句中定義的變量,其作用域僅限于復合語句以內,即該變量定義的大括號對之內形參也是局部變量【例1:】局部變量的作用范圍voidmain(){intx,y;…
{inti,j;…}}intmax(intx,inty){intz;…..}i和j有效范圍x和y有效范圍x、y、z有效范圍【例2:】在多個函數中出現同名的局部變量intf(inta){
a=a+4;return(a);}voidmain(){inta=3;printf(“%d\n”,f(a));printf(“%d”,a);}運行結果:形參a的作用范圍main函數中的局部變量a的作用范圍73全局變量(外部變量)定義在所有函數外面定義的變量稱為全局變量全局變量的默認作用范圍是從定義變量的位置開始到本程序文件的結束可使用全局變量獲得多于一個的返回值,增強函數之間的數據聯系通道【例3:】全局變量的作用范圍intp=1,q=5;//外部變量floatf1(inta)//定義函數f1{intb,c;…}charc1,c2;//外部變量
charf2(intx,inty)//定義函數f2{inti,j;…}voidmain()//主函數
{intm,n;…}全局變量c1,c2的作用范圍全局變量p,q的作用范圍全局變量(外部變量)說明若在定義全局變量之前需要引用該全局變量,則需要進行聲明,一般格式為:
extern類型名變量名;【例4:】區分全局變量的聲明與定義externintn;
//全局變量的聲明voidfun(){n-=20;}intn=100;
//全局變量的定義voidmain(){printf(“n=%d\n”,n);for(;n>=60;){fun();printf(“n=%d\n”,n);}}全局變量的定義與聲明不是一回事。定義只能有一次,而全局變量的聲明可進行多次在同一源文件中,全局變量與局部變量同名,則局部變量在其作用范圍內屏蔽全局變量,即局部變量起作用,全局變量不起作用【例5:】外部變量與局部變量同名#include<stdio.h>inta=3,b=5;//定義全局變量a,bvoidmain(){intmax(inta,intb);//聲明函數原型inta=8;//定義主函數的局部變量a
printf(“%d”,max(a,b));//訪問局部變量a、全局變量b}intmax(inta,intb)//形參a,b為max函數的局部變量{intc;c=a>b?a:b;//訪問局部變量a、breturn(c);}a=8b=5運行結果為:8由于函數的調用只能帶回一個返回值,因此有時可以利用全局變量增加與函數聯系的渠道,從函數得到一個以上的返回值若在一個函數中改變了全局變量的值,則其后引用該變量時,得到的是被改變了的值【例6:】有一個一維數組,內放10個學生成績,編寫一個函數,求出平均分,最高分和最低分解題思路希望從函數得到3個結果值可以把平均值作為函數值返回,另外兩個(最大值、最小值)可以使用全局變量程序實現#include<stdio.h>floatMax=0,Min=0;//全局變量floataverage(floatarray[],intn)
//定義函數,第一個形參為數組{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);}建議非必要時,不要使用全局變量,因為:占用資源多,全局變量在程序的全部執行過程中都占用存儲單元。通用性差。因為函數在執行時要依賴于其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市管理車輛管理制度
- 安全檢查閉環管理制度
- 行政組織理論的政策分析框架試題及答案
- 醫院處方審查管理制度
- 公司燒水鍋爐管理制度
- 醫藥推廣人員管理制度
- 公司日常基本管理制度
- 公路工程風險管控制度試題及答案
- 少年太極社團管理制度
- 嵌入式技術在農業中的創新應用試題及答案
- 電廠化驗規程
- 2023-2024學年廣東省深圳市福田區八年級(下)期末數學試卷(含答案)
- 大數據可視化智慧樹知到期末考試答案章節答案2024年浙江大學
- 山東省濟南市歷城區2023-2024學年八年級下學期期末數學試題(無答案)
- 綠色建筑運行標識自評報告參考樣式
- 穴位貼敷法技術操作評分標準
- 污水處理設施環保管理培訓資料
- 2024年山西省中考英語試題(附答案)
- 防雷裝置檢測業務合同范本
- 北京郵電大學《數字圖像處理》2019-2020學年上學期期末試卷
- 新車出廠質檢報告
評論
0/150
提交評論