- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二章函式处理.ppt
第十二章 函式處理 12-1 函式之原型宣告與呼叫 12-2 參數的傳遞 12-3 遞廻 第十二章 函式處理 在程式設計時,常會遇到某些程式片段需要在同一個程式或 不同一個程式重覆出現多次,如果這些程式片段都分別在每 個地方寫一次,那是一件非常浪費時間的事,且會使程式變 得冗長而不易閱讀。 函式的使用方式是將此常用的程式片段賦予一個名稱,當程 式設計者需要使用此程式片斷時,只要使用此名稱即可呼叫 此程式片段,此程式片段即稱為函式,又稱為副程式。其 次,函式完成之後可交由不同的程式呼叫使用,以節省程式 設計者的時間。 12-1 函式之原型宣告與呼叫 在本章之前我們已經介紹了基本資料型別、陣列型別、結構 型別及指標型別,本節將介紹函式型別。同樣的道理,使用 函式之前一樣要宣告函式型別,但是函式的宣告較前面複 雜,它包含有函式的傳回型別、函式名稱及參數型別與參數 名稱,所以另稱為函式原型(Prototype),而不稱為函式宣 告。(雖然你若說函式宣告,別人也知道您是講函式原型宣 告,但較少人使用函式宣告)。 函式的使用步驟如下: 步驟一,函式原型宣告。 步驟二,實作函式本體。 步驟三,呼叫函式。 函式原型宣告 函式原型宣告之語法如下: 傳回值型別 函式名稱 ([參數1型別 參數名稱1, …]….); 以下語法說明如下: 1. 傳回值型別為函式所要傳回的資料型別,可以是任一基本資料型別 (int、char及double等)、結構及指標等,若無傳回值,則用void即可。 2. 函式名稱的命名同變數名稱。 3. 參數型別與參數名稱須成對出現,但參數名稱可省略。參數為主程式 與函式傳遞資料或執行結果的窗口,亦可無任何參數傳遞。 4. 函式原型宣告的位置,亦影響其有效範圍,其有效範圍同一般變數的 宣告。 例如,以下程式片段為函式原型宣告,其意義是函式傳回一個整數型 別,函數名稱為add,且傳遞兩個整數型別給函式本體。 int add (int a, int b); 或 int add (int, int); 實作函式本體 實作函式本體的語法如下: 傳回值型別 函式名稱 ( [參數 1, 參數 2…] ) { [敘述區塊;] [ return (運算式);] [敘述區塊;] } 以上語法說明如下: 1. 傳回值型別與函式名稱須與函式原型宣告相同。 2. 每個函式的地位均相同,所以不可以在函式中再定義其它函式。 3. 函式原則上從左大括號( “{” )執行到右大括號(“}”),但若中途有特殊原因 要離開函式,可用retrun提早離開。 4. 參數(Parameter)有些書亦稱為引數(Argument),函式本體的參數名稱與實作函式 本體的參數名稱可不同。 5. 以下程式片段,可將所傳來的兩個參數相加並傳回。 int add (int a, int b) { int c; c = a + b; return (c); } 呼叫函式 呼叫函式的語法如下: [傳回值 =] 函式名稱 ( [參數 1, 參數 2, ...] ); 以上語法說明如下: 1. 函式若無傳回值,則函式名稱前的傳回值可省略。 2. 主程式呼叫函式與函式原型宣告的參數稱為實際參數(Actual Parameter),函式本體的參數稱為形式參數(Formal Parameter),且 兩者的名稱可以不同。實際參數會將參數值傳給形式參數,而形式參 數是否將值傳回,則要看參數傳遞方式,參數的傳遞方式有傳值及傳 址,請看本章第二節的詳細說明。 3. 以下程式片段可呼叫add函式,傳回值皆為8, c = add (6, 2); 或 m = 6; n = 2; c = add (m, n); 範例12-1a 請寫一程式計算 C 的值。提示 C = 範例12-1b 同上範例,但將階乘計算改用函式。 範例12-1c 示範傳回結構型別。 12-2 參數的傳遞 傳值與傳址 參數的傳遞有兩種情形,一種是傳值,另一種是傳址。參數的傳遞若是 傳值,則是一種單向的傳遞方式,參數僅能由主程式傳至函式本體,函 式本體並不能藉由參數傳回值。也就是使用傳值參數至多能用函式名稱 傳回一個值,若要傳回兩個以上的值,就要使用傳址參數。 以傳值方式傳遞參數時,被傳遞的變數值通常只是被複製到其對應的參 數,在函式執行過程,主程式中的變數之值並不會受到影響。然而,傳 址參數是一種雙向的參數傳遞,主程式不僅可以將參數傳至函
文档评论(0)