C語言第6章_函數(shù)_第1頁
C語言第6章_函數(shù)_第2頁
C語言第6章_函數(shù)_第3頁
C語言第6章_函數(shù)_第4頁
C語言第6章_函數(shù)_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、123 int gac(int a,int b) int r; r=a%b; while(r!=0) a=b; b=r; r=a%b; return b; 函數(shù)函數(shù)首部首部函數(shù)體函數(shù)體45運行結(jié)果:運行結(jié)果:* * * * * * * * * * * * * * * * * * * *How do you do!How do you do!* * * * * * * * * * * * * * * * * * * *6789如:計算兩個自如:計算兩個自然數(shù)然數(shù)a和和b的最大的最大公約數(shù)。公約數(shù)。a和和b的值。的值。如:計算兩個自如:計算兩個自然數(shù)然數(shù)a和和b的最大的最大公約數(shù)。公約數(shù)。int

2、a,int b1011* 121314151617int gac(int a,int b)int r; r=a%b; while(r!=0) a=b; b=r; r=a%b; return b;18int gac(int a,int b)int r; r=a%b; while(r!=0) a=b; b=r; r=a%b; return b;19202122#include int max(int x, int y) /*定義有參函數(shù)max */int z; z=xy ? x : y; return z;void main() int a, b, c; scanf(%d,%d, &a,

3、&b);c = max(a, b); printf(Max is %d, c);23#include void main()int max(int x, int y); /* 對max函數(shù)的聲明 */ int a, b, c; scanf(%d,%d, &a, &b);c = max(a, b); printf(Max is %d, c);int max(int x, int y) /*定義有參函數(shù)max */int z; z=xy ? x : y; return z;2425262728float add(float, float);float add(float x

4、, float y);29303132main()fun()返回返回計算實參計算實參形實結(jié)合形實結(jié)合返回到返回到調(diào)用位置調(diào)用位置調(diào)調(diào)fun()結(jié)束結(jié)束33如果按如果按自左至右自左至右順序求實順序求實參的值,則函數(shù)調(diào)用相當(dāng)參的值,則函數(shù)調(diào)用相當(dāng)于于f(2,2) 。如果按如果按自右至左自右至左順序求實順序求實參的值,則函數(shù)調(diào)用相當(dāng)參的值,則函數(shù)調(diào)用相當(dāng)于于f(3,2) 。 對于函數(shù)調(diào)用對于函數(shù)調(diào)用 int i=2,p;p=f(i, i+); 34x5y10a b 5 10t510 5x=5 y=10結(jié)論:結(jié)論: 實參向形參的數(shù)實參向形參的數(shù)據(jù)傳遞是據(jù)傳遞是: 單向值傳遞單向值傳遞35函數(shù)語句函數(shù)語

5、句 把函數(shù)調(diào)用作為一個語句。如把函數(shù)調(diào)用作為一個語句。如printstar(),這時,這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。 要求:要求:無無返回值返回值函數(shù)函數(shù)函數(shù)表達式函數(shù)表達式 函數(shù)出現(xiàn)在一個表達式中,這種表達式稱為函數(shù)出現(xiàn)在一個表達式中,這種表達式稱為函數(shù)函數(shù)表達式表達式。 要求:要求:有返回值函數(shù)。有返回值函數(shù)。36373839)0()!1()0(1!nnnnn4041) 1() 1(2) 1(10)(nnagennage42可以用一個函數(shù)來描述上述遞歸過程:int age(int n) /* 求年齡的遞歸函數(shù) */ int ;

6、/* c用作存放函數(shù)的返回值的變量 */ if (n=1) c=10; else c=age(n-1)+2; return c;用一個主函數(shù)調(diào)用age函數(shù),求得第5人的年齡。#include void main()printf(%d, age(5); 44古代有一個梵塔,塔內(nèi)有3個座A、B、C,開始時座上有64個盤子,盤子大小不等,大的在下,小的在上。有一個老和尚想把這64個盤子從A座移到C座,但每次只允許移動一個盤,且在移動過程中在3個座上都始終保持大盤在下,小盤在上。在移動過程中可以利用B座,要求編程序打印出移動的步驟。ABCABCABCABCABCABCABCABCABCABCABCAB

7、C62636465(1) 主函數(shù)中定義的變量主函數(shù)中定義的變量(m,n)也只在主函數(shù)中有也只在主函數(shù)中有效效, 主函數(shù)不能使用其他函數(shù)中定義的變量。主函數(shù)不能使用其他函數(shù)中定義的變量。(4) 不同函數(shù)中可以使用相同名字的變量不同函數(shù)中可以使用相同名字的變量,它們代它們代表不同的對象表不同的對象,互不干擾。互不干擾。(2) 形式參數(shù)也是局部變量。形式參數(shù)也是局部變量。(3) 在一個函數(shù)內(nèi)部在一個函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效這些變量只在本復(fù)合語句中有效, 。66全局變量可以在函數(shù)之間定義全局變量可以在函數(shù)之間定義 作用域從聲明點開始至源文

8、件尾結(jié)束作用域從聲明點開始至源文件尾結(jié)束(4) 在不必要時不要使用全局變量在不必要時不要使用全局變量:(2) 全局變量可以與局部變量同名全局變量可以與局部變量同名 作用域重疊時,局部變量可見。作用域重疊時,局部變量可見。(3)使用全局變量可以在不同的函數(shù)中傳遞數(shù)據(jù)。使用全局變量可以在不同的函數(shù)中傳遞數(shù)據(jù)。(5) 全局變量定義時,若不初始化,值全局變量定義時,若不初始化,值 為為0.6769#include int f(int a)auto int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c);void main()int a=2,i; for

9、(i=0;i3;i+) printf(%d,f(a);70717273文件file2.c中的內(nèi)容為:#include #include #include file1.cint main() extern a,b; a=1,b=2; printf(%d,%dn,a,b); system(pause);76靜態(tài)動態(tài)存儲方式程序整個運行期間函數(shù)調(diào)用開始至結(jié)束生存期編譯時賦初值,只賦一次每次函數(shù)調(diào)用時賦初值自動賦初值0或空字符不確定未賦初值靜態(tài)存儲區(qū)動態(tài)區(qū)存儲區(qū)寄存器局部變量外部變量作用域定義變量的函數(shù)或復(fù)合語句內(nèi)本文件其它文件u局部變量默認為auto型u局部static變量具有全局壽命和局部可見性u局部static變量具有可繼承性uextern不是變量定義,可擴展外部變量作用域register局部staticauto外部static外部存儲類別int a;main( ) . . f2; . f1; .f1( ) auto int b; f2; .f2( ) static int c; C作用域b作用域a作用域mainf2f1mainf1f2maina生存期:b生存期:c生存期:main() int x

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論