存儲(chǔ)類(lèi)和預(yù)處理程序.doc_第1頁(yè)
存儲(chǔ)類(lèi)和預(yù)處理程序.doc_第2頁(yè)
存儲(chǔ)類(lèi)和預(yù)處理程序.doc_第3頁(yè)
存儲(chǔ)類(lèi)和預(yù)處理程序.doc_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六章 函數(shù)、存儲(chǔ)類(lèi)和預(yù)處理程序教學(xué)目的和要求:掌握自定義函數(shù)的定義及使用方法,掌握函授的遞歸算法,掌握變量的作用域和生命期。教學(xué)重點(diǎn):自定義函數(shù)的定義及調(diào)用課時(shí)安排:4+4(上機(jī))教學(xué)內(nèi)容:6.1 定義函數(shù)一、 庫(kù)函數(shù)二、 用戶自定義函數(shù)1、傳統(tǒng)格式類(lèi)型標(biāo)志符 函數(shù)名(形式參數(shù)列表)形式參數(shù)類(lèi)型說(shuō)明:函數(shù)體2、現(xiàn)代格式類(lèi)型標(biāo)志符 函數(shù)名(類(lèi)型標(biāo)志符 形式參數(shù),類(lèi)型標(biāo)志符 形式參數(shù),)函數(shù)體說(shuō)明:函數(shù)名稱:符合C語(yǔ)言對(duì)標(biāo)志符的規(guī)定。函數(shù)形式參數(shù):一個(gè)函數(shù)既可以有多個(gè)參數(shù)也可以無(wú)參數(shù),函數(shù)參數(shù)之間用逗號(hào)隔開(kāi),并且要說(shuō)明其數(shù)據(jù)類(lèi)型。函數(shù)體:用花括號(hào)括起的語(yǔ)句組成,它實(shí)現(xiàn)函數(shù)的功能。函數(shù)值:一個(gè)函數(shù)在運(yùn)行后通常都有一個(gè)值,被稱為函數(shù)值或函數(shù)返回值,函數(shù)值的類(lèi)型由定義函數(shù)時(shí)給出的類(lèi)型標(biāo)志符指定,若空缺,系統(tǒng)默認(rèn)函數(shù)值是整型,用戶可通過(guò)函數(shù)體中的RETURN語(yǔ)句給函數(shù)賦一個(gè)值,否則系統(tǒng)將隨機(jī)賦給函數(shù)一個(gè)值。RETURN語(yǔ)句的作用:1、 結(jié)束當(dāng)前被調(diào)用的函數(shù)的執(zhí)行,返回主調(diào)用函數(shù)。2、 賦給當(dāng)前被調(diào)用函數(shù)一個(gè)值RETURN語(yǔ)句的三種形式:Return (e) e為表達(dá)式 函數(shù)值是計(jì)算后得到的值。Return e e為表達(dá)式 函數(shù)值是計(jì)算后得到的值。Return例1、 int max (x,y) int x,y;int max (int x, int y)注意:使用后者,必須對(duì)每個(gè)參數(shù)分別說(shuō)明類(lèi)型,int z;并用逗號(hào)分隔。 if (x. y) z=x;elsez=y;return (z); 6.2 函數(shù)調(diào)用一、函數(shù)調(diào)用的形式函數(shù)名稱 (實(shí)際參數(shù)表);函數(shù)名稱 被調(diào)函數(shù)的標(biāo)志。實(shí)際參數(shù) 主調(diào)函數(shù)利用實(shí)際函數(shù)將本函數(shù)的信息傳遞給被調(diào)函數(shù)的形式參數(shù),從而使被調(diào)用函數(shù)獲得被調(diào)用的函數(shù)得到主調(diào)函數(shù)的相應(yīng)數(shù)據(jù),調(diào)用時(shí)所傳遞的實(shí)際參數(shù)的個(gè)數(shù)、類(lèi)型以及排列順序必須與函數(shù)的形式參數(shù)一一對(duì)應(yīng)。例2、 int max (x,y) int x,y;Iint z; if (x. y) z = x;elsez = y;return (z); main ( )int a,b,maxnumberscanf (“%d%d”,&a,&b);maxnumber = max (a,b);printf (“max number of %d and %d is %d”,a,b,maxnumber);二、函數(shù)調(diào)用的位置1、 函數(shù)表達(dá)式 maxnumber = max (a, b) 2、 函數(shù)語(yǔ)句3、 函數(shù)參數(shù) m = max (max (a,b),c);二、 函數(shù)調(diào)用的條件1、 調(diào)用的函數(shù)必須是已被定義的函數(shù)2、 如使用庫(kù)函數(shù),應(yīng)將有關(guān)的庫(kù)函數(shù)信息包含在程序中。如 # include “stdio.h”3、 如調(diào)用的是用戶自定義的函數(shù),一般應(yīng)該在主調(diào)用函數(shù)中對(duì)被調(diào)用函數(shù)的數(shù)據(jù)類(lèi)型進(jìn)行說(shuō)明,以便通知C語(yǔ)言編譯系統(tǒng)被調(diào)用函數(shù)的函數(shù)值類(lèi)型等信息,說(shuō)明方式如下:類(lèi)型標(biāo)志符 函數(shù)名 (類(lèi)型標(biāo)志符 形式參數(shù),類(lèi)型標(biāo)志符 形式參數(shù),)函數(shù)說(shuō)明的類(lèi)型必須與函數(shù)定義時(shí)的類(lèi)型一致。函數(shù)定義的首部沒(méi)有分號(hào)。函數(shù)說(shuō)明語(yǔ)句是一條語(yǔ)句,有分號(hào)。若1、 被調(diào)用的函數(shù)的定義位置在主調(diào)函數(shù)之前,可以不必說(shuō)明。2、 函數(shù)的返回值是整型或字符型,可不必說(shuō)明。6.3 函數(shù)參數(shù)和函數(shù)的值一、 形式參數(shù)和實(shí)際參數(shù)1、 在定義函數(shù)中指定的形參變量,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們不占內(nèi)存中的存儲(chǔ)單元,只有再發(fā)生函數(shù)調(diào)用時(shí)函數(shù)中的形參才被分配內(nèi)存單元,在調(diào)用結(jié)束后,形參所占的內(nèi)存單元也被釋放,2、 實(shí)參可以是常量、變量或表達(dá)式,如max (3 , a+b ); 但要求它們有確定的值在調(diào)用時(shí)將實(shí)參的值賦給形參變量,3、 在被定義的函數(shù)中,必須指定形參的類(lèi)型4、 實(shí)參與形參的類(lèi)型應(yīng)一致。(字符型與整型可以互相通用。5、 實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞。A 2 B 3X 2 Y 36.4 函數(shù)之間的數(shù)據(jù)傳遞l 使用return (e )的方式l 參數(shù)傳遞l 全局變量傳遞方式一、參數(shù)傳遞1、按值調(diào)用 只能由實(shí)際參數(shù)傳遞給形式參數(shù),單向傳遞2、引用調(diào)用把實(shí)際參數(shù)的地址傳遞給被調(diào)用函數(shù)的形式參數(shù)二、 變量傳遞1、局部變量是一個(gè)在一個(gè)函數(shù)內(nèi)部被定義的變量,只在本函數(shù)范圍內(nèi)有效。,在不同的函數(shù)中可以定義相同的局部變量,它們各自代表不同的對(duì)象,互相并不干擾。2、全局變量又稱外部變量是在函數(shù)體外定義的。一般在程序的開(kāi)頭,其作用域?yàn)閺亩x變量的位置開(kāi)始,一直到整個(gè)程序的結(jié)束為止。注意:如果在同一程序中,外部變量與局部變量同名,則在局部變量的作用域內(nèi),外部變量被屏蔽,不起作用。6. 5 動(dòng)態(tài)變量與靜態(tài)變量從存儲(chǔ)的角度,變量可以分為l 存儲(chǔ)在內(nèi)存動(dòng)態(tài)存儲(chǔ)區(qū)中的變量,包括自動(dòng)變量和形式參數(shù)。l 存儲(chǔ)在CPU寄存器中的寄存器變量。l 存儲(chǔ)在內(nèi)存靜態(tài)存儲(chǔ)區(qū)中的變量,包括外部變量和靜態(tài)局部變量。其中前兩種被合稱為動(dòng)態(tài)變量,第三種被稱為靜態(tài)變量。一、動(dòng)態(tài)變量是在程序運(yùn)行時(shí)的某一刻被動(dòng)態(tài)建立,又在某一刻被動(dòng)態(tài)撤消的一種變量,在程序運(yùn)行過(guò)程中被動(dòng)態(tài)的建立和撤消,他們存在于程序的局部,也只在局部可用。1、 自動(dòng)變量 由系統(tǒng)分配內(nèi)存單元,當(dāng)函數(shù)執(zhí)行完畢,這些單元被撤消,在函數(shù)體中說(shuō)明的變量,如不特別聲明會(huì)被默認(rèn)為自動(dòng)變量。格式: auto type namelist;2、 寄存器變量與自動(dòng)變量性質(zhì)相同,寄存器變量建立時(shí)被存儲(chǔ)在CPU的一個(gè)寄存器內(nèi),CPU的寄存器具有高速存儲(chǔ)的特點(diǎn),使用寄存器變量能夠提高程序執(zhí)行速度。二、靜態(tài)變量在程序的開(kāi)始執(zhí)行時(shí)被建立,直到該程序結(jié)束都是存在的。格式:static int a,b靜態(tài)變量只能被初始化一次,若靜態(tài)變量使用前沒(méi)有被初始化賦值,則系統(tǒng)設(shè)置靜態(tài)變量的值為0,動(dòng)態(tài)變量沒(méi)有初始化,則它的值是不確定的隨機(jī)值。6.6 類(lèi)型說(shuō)明符 void類(lèi)型說(shuō)明符,表示為空類(lèi)型。其作用為:1、 說(shuō)明函數(shù)參數(shù)為空l(shuí) 直接將函數(shù)形式參數(shù)列表為空。l 使用關(guān)鍵字void定義函數(shù)的形式參數(shù)2、 定義函數(shù)無(wú)函數(shù)值一個(gè)函數(shù)可以沒(méi)有函數(shù)值,若無(wú)返回值,則函數(shù)類(lèi)型應(yīng)定義為void類(lèi)型。如果一個(gè)函數(shù)的類(lèi)型不明確指定為void,則不管有無(wú) return語(yǔ)句,大多數(shù)系統(tǒng)會(huì)分配給函數(shù)一個(gè)值。6.7 函數(shù)的遞歸一個(gè)被調(diào)用函數(shù)的函數(shù)體中又調(diào)用了另一個(gè)函數(shù)被稱為函數(shù)的嵌套。Main ( )int I ;scanf ( “%d”,&I):printf

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論