- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
函數指標指向函數的指標稱之。函數指標是C語言中一項相當有特色的功能。假設有多個格式相類似的函數,也就是說函數的引數完全相同,回傳值也相同,那麼可以使用同一個函數指標名稱,於程式執行期間,動態來指向所要執行的函數。函數指標的宣告格式如下:8-4陣列、指標與函數的應用回傳資料型態(*函數指標名稱)(參數1資料型態,參數2資料型態,…);函數指標將函數指標指向函數位址的方式有兩種方式,如下所示:8-4陣列、指標與函數的應用回傳資料型態(*函數指標名稱)(參數1資料型態,參數2資料型態,…)=函數名稱;或回傳資料型態(*函數指標名稱)(參數1資料型態,參數2資料型態,…);函數指標名稱=函數名稱;範例CH08_15.c8-4陣列、指標與函數的應用執行結果程式解說第3行使用三角函數,必須含括math.h檔。第5行宣告常數PI的值。第9行傳回值為double型態的函數指標宣告。第10行將sin函數的位址指向pF函數指標。第11行使用pF()執行sin()函數的功能。第13行將cos函數的位址指向pF。第14行使用pF()執行cos()函數的功能。 8-4陣列、指標與函數的應用遞迴函數函數出現自己呼叫自己的情況時稱之。使用遞迴函數必須充分了解其終止條件,以避免程式無窮盡地一直進行下去。8-5遞迴範例CH08_16.c8-5遞迴範例CH08_16.c8-5遞迴執行結果8-5遞迴程式解說第4行宣告遞迴函數的原型宣告。第5行宣告迴圈函數的原型宣告。第11行請輸入要計算的階乘數。第21~24行利用dowhile迴來控制與計算。第26行回傳結果值。第29~35行遞迴函數的程式碼。第32行跳出反覆執行過程中的缺口。第34行如果使用者輸入的數值大於1,則繼續計算這個n值乘上(n-1)!的結果,ndegree_rec(n-1)的部分會以n-1的值當成引數繼續呼叫ndegree()函數。8-5遞迴範例CH08_17.c8-5遞迴範例CH08_17.c8-5遞迴執行結果程式解說第4行宣告迴圈函數的原型宣告。第5行宣告遞迴函數的原型宣告。第23行如果n=0,則傳回m值。第25行求兩者餘數值再遞迴運算。第32行求兩者餘數值。8-5遞迴變數依照在C程式中所定義的位置與格式,可以決定其在記憶體中所佔空間大小與程式中可以存取到該變數的程式區塊。例如針對C的變數而言,我們可以在資料型態前加上一些修飾字,使這些變數成為特殊的變數。較常見的修飾字包含自動(auto)變數、暫存器(register)變數、靜態(static)變數,以及外部(extern)變數等等。8-6變數的生命週期auto變數每一個變數宣告後若加上修飾字auto,或是完全不加修飾字,其型態便是自動變數。在函數中宣告變數時,變數便因此而開始其生命週期。而變數的值會隨著函數結束而消失。在前面各章的程式中所定義的變數凡未加存儲類型說明符的都是自動變數。宣告語法如下:8-6變數的生命週期auto資料型態變數名稱;範例CH08_18.c8-6變數的生命週期執行結果程式解說第6行定義auto整數變數iVar。第12行在程式區塊中定義整數變數iVar。第11~14行底下以大括號區隔出一段程式區塊。第15行輸出離開程式區塊的iVar值。8-6變數的生命週期register變數(暫存器變數)由於CPU的暫存器速度較快,因而可以加快變數存取的效率。宣告語法如下:由於個人電腦上所使用的暫存器容量有限,因此有些編輯器規定只能最多只能使用2個暫存器變數,因此當各位宣告更多的register變數時,仍然會視其為一般的變數使用。8-6變數的生命週期register資料型態變數名稱=初始值;範例CH08_19.c8-6變數的生命週期範例CH08_05.c8-3函數中參數傳遞的方式範例CH08_05.c8-3函數中參數傳遞的方式執行結果程式解說第4行傳值呼叫函數的原型宣告。第9~10行設定a、b的初值。第12行函數呼叫指令。第19行未傳回值的函數。第23~25行x與y數值的交換過程。8-3函數中參數傳遞的方式範例CH08_06.c8-3函數中參數傳遞的方式執行結果程式解說第4~5行宣告a與
原创力文档


文档评论(0)