北大青鳥 C語言實現(xiàn) 9.ppt

北大青鳥 C語言實現(xiàn) 9.ppt

ID:52192934

大小:216.00 KB

頁數(shù):22頁

時間:2020-04-02

北大青鳥 C語言實現(xiàn) 9.ppt_第1頁
北大青鳥 C語言實現(xiàn) 9.ppt_第2頁
北大青鳥 C語言實現(xiàn) 9.ppt_第3頁
北大青鳥 C語言實現(xiàn) 9.ppt_第4頁
北大青鳥 C語言實現(xiàn) 9.ppt_第5頁
資源描述:

《北大青鳥 C語言實現(xiàn) 9.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫

1、函數(shù)第九章回顧指針變量指針運算符指針與數(shù)組內(nèi)存分配2目標掌握函數(shù)的結(jié)構(gòu)掌握函數(shù)聲明和原型按值傳遞/按地址傳遞理解函數(shù)的作用域掌握函數(shù)指針3函數(shù)獨立的程序段執(zhí)行一個具體的、明確定義的任務易于編寫、理解、調(diào)試和維護將需要多次執(zhí)行的一組指令定義為函數(shù)4函數(shù)的結(jié)構(gòu)type_specifierfunction_name(arguments){函數(shù)體}返回值的數(shù)據(jù)類型有效的函數(shù)名形式參數(shù)5函數(shù)的參數(shù)#includeintsquarer(intx);main(){inti;for(i=1;i<=10;i++)printf("Squareof%dis%d",i,squarer

2、(i));}intsquarer(intx)/*intx;*/{intj;j=x*x;return(j);}形式參數(shù)實際參數(shù)6從函數(shù)返回intsquarer(intx)/*intx;*/{intj;j=x*x;return(j);}將控制權從函數(shù)傳回主調(diào)程序把return語句中的內(nèi)容返回給主調(diào)程序7函數(shù)的數(shù)據(jù)類型如果返回的是一個整型值或者沒有返回值,可以省略類型標識符為了避免出現(xiàn)不一致,最好指定數(shù)據(jù)類型intsquarer(intx)/*intx;*/{intj;j=x*x;return(j);}8調(diào)用函數(shù)函數(shù)名后面必須有括號一個函數(shù)只能返回一個值程序可以有一個以上的函數(shù)主調(diào)函數(shù)被

3、調(diào)函數(shù)9函數(shù)聲明在定義之前使用函數(shù),必須聲明否則,一些編譯器會返回錯誤#includemain(){address();}address(){}“隱式”聲明10函數(shù)原型指定參數(shù)的數(shù)據(jù)類型如果調(diào)用時所使用的參數(shù)與原型的參數(shù)之間不一致,系統(tǒng)將報錯charabc(intx,inty);abc(12);11變量局部變量在函數(shù)內(nèi)部聲明進入一個程序塊時創(chuàng)建,退出該程序塊時銷毀形式參數(shù)在函數(shù)定義中被聲明為參數(shù)在函數(shù)內(nèi)部像局部變量一樣使用全局變量在所有函數(shù)以外聲明在程序的整個執(zhí)行期間都擁有值12存儲類別2-1存儲類別是變量的屬性存儲類別定義了:生命周期保留特定值的時間長度可見性程

4、序的哪些部分將能夠“看見”該變量13存儲類別2-2自動的(auto)外部的(extern)靜態(tài)的(static)寄存器的(register)14函數(shù)作用域規(guī)則一塊代碼是否有權訪問另一塊代碼或數(shù)據(jù)函數(shù)內(nèi)部的代碼對該函數(shù)來說是私有或局部的兩個函數(shù)擁有不同的作用域但處于相同的級別函數(shù)不能在其他函數(shù)以內(nèi)定義15調(diào)用函數(shù)按值傳遞按地址傳遞25100#25100#2510016按值傳遞變量的值被傳遞給被調(diào)函數(shù),并且對這個值的任何改變都不會影響被傳變量的原始值默認情況下,函數(shù)參數(shù)都是按值傳遞的參數(shù)值是通過臨時變量傳遞的所有操作都針對這些臨時變量17按地址傳遞允許函數(shù)訪問內(nèi)存位置被調(diào)函數(shù)能夠修改主

5、調(diào)程序的參數(shù)的值定義getstr(char*ptr_str,int*ptr_int);使用getstr(pstr,&var);18函數(shù)調(diào)用的嵌套main(){..palindrome();..}palindrome(){..getstr();reverse();cmp();..}19多文件程序中的函數(shù)函數(shù)可以定義成靜態(tài)的或者外部的靜態(tài)函數(shù)只能在其程序文件內(nèi)部被識別staticfn_typefn_name(argumentlist);外部函數(shù)可以被程序的所有文件識別externfn_typefn_name(argumentlist);20函數(shù)指針函數(shù)在內(nèi)存中的物理位置-函數(shù)的入口點v

6、oidcheck(char*a,char*b,int(*cmp)()){printf("testingforequality");if(!(*cmp)(a,b))printf("Equal");elseprintf("NotEqual");}#include#includevoidcheck(char*a,char*b,int(*cmp)());main(){chars1[80];chars2[80];int(*p)();p=strcmp;gets(s1);gets(s2);check(s1,s2,p);}21總結(jié)函數(shù)的結(jié)構(gòu)函數(shù)聲明和函數(shù)原

7、型按值傳遞/按地址傳遞函數(shù)的作用域規(guī)則多文件程序中的函數(shù)函數(shù)指針22

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。