版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
應用型系列教材C語言程序設計第七章函數函數概述01在C語言中可以從不同的角度對函數分類。從函數定義的角度來看,可以分為庫函數和用戶自定義函數兩種。C語言的函數兼有其他語言中的函數和過程兩種功能。從主調函數和被調函數之間數據傳送的角度來看,又可以分為無參函數和有參函數兩種。函數概述01在C語言中可以從不同的角度對函數分類。從函數的作用范圍來看,又可以分為外部函數和內部函數兩種。C語言提供了極為豐富的庫函數,這些庫函數又可以從功能角度進行分類。函數概述01函數的定義0201無參函數的定義
無參函數的定義無參函數定義的語法格式如下:類型標識符
函數名()//函數首部{聲明部分
//函數體
語句部分}02有參函數的定義
有參函數的定義有參函數定義的語法格式如下:類型標識符
函數名(形式參數表列)//函數首部{聲明部分
//函數體
語句部分}函數的參數和函數的值03函數的形參和實參具有以下4個特點:形參變量只有在函數調用時才會分配內存單元,在函數調用結束時,即刻釋放所分配的內存單元。實參可以是常量、變量、表達式、函數調用等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。形參和實參01函數的形參和實參具有以下4個特點:實參和形參在數量上、類型上、順序上要嚴格一致,否則會發(fā)生類型不匹配的錯誤。函數調用中發(fā)生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。形參和實參01函數的值只能通過return語返回主調函數。函數返回值的類型和函數定義中函數的類型應該保持一致。如果兩者不一致,則以函數類型為準,自動進行類型轉換。在函數定義時如果省略函數類型,則函數返回值為整型。為了使程序具有良好的可讀性并減少出錯,即使函數類型為整型,也不要使用系統(tǒng)的缺省處理。函數的返回值02函數的返回值如果被調用函數中沒有cturn語,并不帶回一個確定的、用戶所希望得到的函數值,但實際上,函數并不是不帶回值,而只是不帶回有用的值,帶回的是一個不確定的值。不返回函數值的函數,可以明確定義為“空類型”,類型說明符為“void”。02函數的調用0401函數調用的語法格式
函數調用的語法格式函數名([實參表列])02函數調用的方式
函數調用的方式函數語句函數表達式函數實參03函數的聲明
函數的聲明要完成函數調用,被調用函數必須滿足以下條件。必須是已存在的函數,也就是函數已有完整的定義。在函數調用之前必須有相應的函數聲明。如果是系統(tǒng)定義的庫函數,則需要將包含函數原型聲明的頭文件包含進來。函數的嵌套調用05函數的嵌套調用函數的嵌套調用01函數的遞歸調用06函數的遞歸調用是指一個函數在它的函數體內,直接或間接地調用它自身。C語言允許函數的遞歸調用。在遞歸調用中,調用函數又是被調用函數,執(zhí)行遞歸函數將反復調用其自身。每調用一次就進入新的一層。函數的遞歸調用01數組作為函數的參數07數組元素與普通變量并無區(qū)別。因此它作為函數實參使用與普通變量使用是完全相同的,在發(fā)生函數調用時,把作為實參的數組元素的值傳送給形參,可以實現(xiàn)單向的值傳送。數組元素作為函數實參01使用數組名作為函數參數與使用數組元素作為實參的不同點:當使用數組元素作為實參時是按普通變量對待的。當普通變量或數組元素作為函數參數時,形參變量和實參變量是由編譯系統(tǒng)分配的兩個不同的內存單元。數組名作為函數的參數02局部變量和全局變量0801局部變量
局部變量在一個函數的內部定義的變量就是局部變量(又稱為內部變量),它只在本函數范圍內有效。也就是說,只能在本函數內使用,在本函數的外面是不能使用的,因此稱它為局部變量。02全局變量
全局變量一個源程序文件可以有若干個函數,在函數內定義的變量是局部變量,而在一個源程序文件中所有函數之外定義的變量稱為外部變量,外部變量是全局變量(也稱為全程變量)。變量的存儲類型0901靜態(tài)存儲方式與動態(tài)存儲方式
用戶存儲空間程序區(qū)靜態(tài)存儲區(qū)動態(tài)存儲區(qū)01靜態(tài)存儲方式與動態(tài)存儲方式
動態(tài)存儲區(qū)存放:函數形式參數自動變量(未添加static聲明的局部變量)函數調用時的現(xiàn)場保護和返回地址02auto變量
auto變量在函數中定義的內部變量,如果不專門聲明為static存儲類別,則其存儲類別默認都是自動變量(auto),數據存儲在動態(tài)存儲區(qū)中。03使用static聲明局部變量有時希望函數中局部變量的值在函數調用結束后不消失而保留原值,即不釋放占用的存儲空間,這樣在下一次該函數又被調用時,就是上一次函數調用結束時的值,在這種情況下就應該將該變量使用關鍵字static聲明為靜態(tài)局部變量。04register變量在一般情況下,變量(包括靜態(tài)存儲方式和動態(tài)存儲方式)的值是存放在內存中的。為了提高效率,C語言允許將局部變量的值存放在CPU的寄存器中,這種變量被稱為“寄存器變量”,使用關鍵字register進行聲明。05使用extern聲明外部變量外部變量(全局變量)是在函數的外部定義的,它的作用域從變量定義處開始,到本程序文件的末尾。程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《金字塔原理》讀書筆記個人所感
- 2022年“安全生產月”宣傳活動方案【4篇】
- 2021公司年終個人總結五篇
- 幼兒園教育實習調查報告匯編4篇
- 驕傲的初中滿分作文素材700字
- 科學發(fā)展觀提出的背景及形成與發(fā)展
- 生物學院食品安全-課件
- 全面保潔服務協(xié)議書(2篇)
- 兒童圖書銷售代理合同(2篇)
- 山西呂梁2025屆高三上學期11月期中考試化學試卷試題及答案解析
- 教師節(jié)表彰大會動態(tài)PPT模板(推薦)課件
- DB36T 773-2021 導游星級劃分與評定(高清版)
- (1-6年級)小學數學常用單位換算公式
- 中建安全標準化圖冊圖集(上下全集)(全電子版)
- 高一物理必修一思維導圖
- 錨索張拉和鎖定記錄表
- 2016年校本課程--------合唱教案1
- 【原創(chuàng)】《圓柱與圓錐》復習課教教學設計
- 《中國藥典》規(guī)定中藥飲片用量
- 國網合肥供電公司城市新建住宅小區(qū)電力建設實施細則
- 中小學生備戰(zhàn)期末迎接期末考試動員班會PPT
評論
0/150
提交評論