C語言函數(shù)的形參和實參運用調(diào)用以及舉例程序40648_第1頁
C語言函數(shù)的形參和實參運用調(diào)用以及舉例程序40648_第2頁
C語言函數(shù)的形參和實參運用調(diào)用以及舉例程序40648_第3頁
C語言函數(shù)的形參和實參運用調(diào)用以及舉例程序40648_第4頁
C語言函數(shù)的形參和實參運用調(diào)用以及舉例程序40648_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

●形參,即函數(shù)定義中的參數(shù)?!駥崊?,則是函數(shù)調(diào)用時的參數(shù)?!窈瘮?shù)的形參必須是變量,用于接受實參傳遞過來的值,形參的使用方法和普通變量相同;而實參可以是常量、變量或表達式,其作用是

把常量、變量或表達式的值傳遞給形參。函數(shù)調(diào)用時,主調(diào)函數(shù)把實參的值傳送給被調(diào)函數(shù)的形參,從而實現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳遞。

函數(shù)的形參和實參具有以下特點:1.形參變量只有在被調(diào)用時才分配內(nèi)存單元,調(diào)用結(jié)束時,立即釋放所分配的內(nèi)存單元,因此,形參只在函數(shù)內(nèi)部有效。2.實參可以是常量、變量、表達式、函數(shù)等,無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值,一便把這些值傳送給形參。3.實參和形參在數(shù)量上、類型上、順序上應(yīng)嚴(yán)格一致,否則會發(fā)生“類型不匹配”的錯誤。4函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的,即只能把實參的值傳送給形參,而不能把形參的值反向的傳送給實參。

參數(shù)傳送有兩種方式:數(shù)值傳遞和地址傳遞。●

C語言中把定義在函數(shù)內(nèi)部的變量稱為局部變量。

1.局部變量的有效作用范圍局限于所在的函數(shù)內(nèi)部。

2.函數(shù)調(diào)用結(jié)束,收回存儲單元?!穸x在函數(shù)外而不屬于任意函數(shù)的變量成為全局變量。

1.全局變量的作用范圍是從定義開始到程序所在文件的結(jié)束,它對作用范圍內(nèi)所有的函數(shù)都起作用。

2.變量從定義開始分配存儲單元,到運行結(jié)束存儲單元被回收的整個過程。1、編寫一個程序確定作為輸入數(shù)據(jù)的日期是一年中的第幾天。函數(shù)的參數(shù)月、日、年為整數(shù)。定義一個函數(shù)leap,若年份是閏年返回1,否則返回0。#include"stdio.h"#include"conio.h"main(){intyear,month,days=0,day;intleap(intyear);printf("enteryear,month,day\n");scanf("%d%d%d",&year,&month,&day);switch(month){case1:days=day;break;case2:days=31+day;break;case3:days=59+day;break;case4:days=90+day;break;case5:days=120+day;break;case6:days=151+day;break;case7:days=181+day;break;case8:days=212+day;break;case9:days=243+day;break;

days=leap(year)+days;printf("%d",days);getch();return0;}intleap(intyear){inta;if((year%4==0&&year%100!=0)||year%400==0)a=1;elsea=0;returna;}case10:days=273+day;break;case11:days=304+day;break;case12:days=334+day;break;}2、用遞歸方法實現(xiàn)對一個整數(shù)進行逆序輸出。#include"stdio.h"main(){intn;voidres(intn);printf("entern\n");scanf("%d",&n);res(n);getch();return0;}

voidres(intn){intm;do{m=n%10;printf("%d",m);n=n/10;}while(n!=0);}3、分析下列程序運行后的輸出結(jié)果,重點分析靜態(tài)局部變量和全局變量的作用,關(guān)注自增運算符的作用。inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a;for(i=0;i<3;i++)s+=f(i);printf(“%d\n”,s);}29靜態(tài)局部變量:它存放在靜態(tài)存儲區(qū),生命周期會持續(xù)到程序結(jié)束。一旦含有靜態(tài)局部變量的函數(shù)被再次調(diào)用,則上一次函數(shù)調(diào)用后留在靜態(tài)局部變量上的值仍然保存著,可供本次調(diào)用繼續(xù)使用。全局變量:由于它和具體函數(shù)無關(guān),從程序執(zhí)行的開始到整個函數(shù)的結(jié)束,全局變量都有效,對應(yīng)的存儲單元始終保持。4、分別用全局變量和函數(shù)調(diào)用的方式,在自定義函數(shù)中找出10個學(xué)生的成績中最高分、最低分,并求其平均分。#include"stdio.h"intn=10;/*定義全局變量n*/main(){intb(intm);/*函數(shù)聲明*/inti,j,k,min=0,max,sum;doublem,p;inta[10];for(i=0;i<10;i++)scanf("%d",&a[i]);min=a[0],max=a[9];for(k=0;k<=n-1;k++){if(a[k]<a[min])min=k;if(a[k]>a[max])max=k;}

for(j=0;j<10;j++){m=a[j];sum=sum+m;}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論