首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
第 1 頁:6.1 函數定義 |
第 2 頁:6.2 函數調用 |
第 3 頁:6.3 函數說明 |
第 4 頁:6.4 函數調用中的數據傳遞方式 |
第 5 頁:6.5 返回指針的函數 |
第 6 頁:6.6 函數遞歸調用 |
6.2 函數調用
函數被定義以后,凡要實現函數功能的地方,就可簡單地通過函數調用來完成。按函數調用在程序中的作用,有兩種不同類型的應用:
(1)函數調用只是利用函數所完成的功能。此時,將函數調用作為一個獨立的語句。其調用的一般形式為
函數名(實際參數表);
這種應用不要求或程序不利用函數的返回值。如程序中經常調用格式輸入函數scanf()和格式輸出函數printf()等。
(2)函數調用是利用函數的返回值。其調用的一般形式為
函數名(實際參數表)
這種應用是利用返回值繼續進行表達式的計算,或輸出函數返回值等。
函數調用時提供的實際參數按它們出現的順序與函數定義中的形式參數-一對應,并要求實際參數類型與其對應的形式參數類型相一致。一般情況下,函數調用應為函數定義中的每個形式參數提供實際參數,當有多個實際參數時,實際參數之間用逗號分隔。
函數調用的執行過程描述如下:
(1)為函數的形式參數分配內存空間;
(2)計算實際參數表達式的值,并將實際參數表達式的值賦給對應的形式參數;
(3)為函數的局部變量分配內存空間;
(4)執行函數體內的語句序列;
(5)函數體執行完成,或執行了函數體內的return語句(若return語句帶表達式,則計算出該表達式的值,并以此值作為函數的返回值)后,釋放為這次函數調用分配的全部內存空間;
(6)將函數值(如果有)返回到函數調用處繼續執行。
下面以簡單的程序例子說明函數調用的執行過程。
【例6.l】函數調用時,由實際參數向函數形式參數傳遞值的示意程序。
# include
double x,y,d;
double min(double a,double b)
{double temp;
temp=a> b? b :a;
return temp;
}
void main()
{ printf(“Enter x, y.\n”);
scanf(“%lf%lf”,&x,&y);
d=min(x,y);
printf(“MIN(%.3f,%.3f=%.3f\n”, x, y,d)
}
以上示意程序的大致執行過程如下:
首先執行主函數的第一個語句,調用格式輸出函數輸出提示信息。接著調用格式輸入函數,等待用戶輸入數據。用戶看到程序輸出的提示信息,輸入數據,輸入的數據被格式輸入函數所接受,并將輸入數據譯成內部形式后,存入變量X和y。接著執行賦值語句,求右瑞表達式的值。該表達式以x和y的值為實際參數,調用函數main()。對函數min()的調用發生時,系統先保留好控制的返回點。在執行被調用函數min()之前,先為函數的形式參數a和b分配存儲單元,并以它們對應的實際參數表達式的植給它們賦初值。接著為函數內部的變量(稱為局部變量)分配存儲單元。之后才開始執行被調用函數體中的語句。執行完函數體的語句,或執行了return語句,函數準備返回。在返回之前先將形式參數和局部變量所占用的存儲單元全部釋放。函數返回時,將函數的返回值帶回調用處,從原先保留的控制返回點,繼續執行,將函數調用的返回值存于變量d,輸出結果,結束程序。綜上所述,函數調用時,系統要做許多輔助工作,函數調用時發生的數據傳遞最主要的是實際參數向形式參數傳遞數據和函數的返回值傳遞給調用處。為正確編寫函數,實現函數調用所希望的要求,需正確了解以下幾項內容:
(1)當函數執行return語句或執行完函數體的語句序列后,函數的這次調用就執行結束,隨之將控制返回到函數調用處繼續執行。
(2)函數的返回值是通過執行return語句時,計算return之后的表達式值而獲得的。如果函數不提供返回值,則return語句不應包含表達式。
(3)如果函數有返回值,則應有確定的類型,并在函數定義時指明。同時,return語句的表達式類型應與函數定義中指明的返回值類型相一致。
(4)為了明確指明函數不提供返回值,建議在函數定義時,在函數名之前寫上void。并在這樣的函數體內,所有的return語句都不應該帶表達式。
相關推薦:2010年計算機軟件水平考試時間安排通知北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |