C++程序設(shè)計:第八章函數(shù)_第1頁
C++程序設(shè)計:第八章函數(shù)_第2頁
C++程序設(shè)計:第八章函數(shù)_第3頁
C++程序設(shè)計:第八章函數(shù)_第4頁
C++程序設(shè)計:第八章函數(shù)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第八章 函數(shù)8.1 概述(4)Main()函數(shù)(5) 函數(shù)分類:標(biāo)準(zhǔn)函數(shù)用戶自定義函數(shù)無參函數(shù)有參函數(shù)凡函數(shù)不加類型說明的,一律按整型凡函數(shù)不加類型說明的,一律按整型下列調(diào)用將是錯誤的:下列調(diào)用將是錯誤的:函數(shù)參數(shù)的結(jié)合性:右結(jié)合性函數(shù)參數(shù)的結(jié)合性:右結(jié)合性8.4.2 函數(shù)調(diào)用的方式函數(shù)調(diào)用的方式1、函數(shù)語句、函數(shù)語句Printstar();2、函數(shù)表達(dá)式、函數(shù)表達(dá)式C=2*max(a,b);3、函數(shù)參數(shù)、函數(shù)參數(shù)M=max(a,max(b,c);8.4.3對被調(diào)用函數(shù)的聲明和函數(shù)原型對被調(diào)用函數(shù)的聲明和函數(shù)原型(1)被調(diào)用函數(shù)已經(jīng)存在)被調(diào)用函數(shù)已經(jīng)存在(2)如果被調(diào)用函數(shù)在后面定義,在前面

2、主調(diào)函數(shù)中必須先)如果被調(diào)用函數(shù)在后面定義,在前面主調(diào)函數(shù)中必須先聲明。聲明。(2)(3)Y2=y;直接遞歸直接遞歸間接遞歸間接遞歸 3 A B C A C2 A C B1 A B C A CA B1 C A B C B2 B A C1 B C A B A B C 1 A B C A C8.7數(shù)組作為函數(shù)參數(shù)(值傳遞與地址傳遞)數(shù)組作為函數(shù)參數(shù)(值傳遞與地址傳遞)1、數(shù)組元素作函數(shù)實參數(shù)組元素作函數(shù)實參 n:a大于b的個數(shù) m:a等于b的個數(shù) k: a小于b的個數(shù)2、數(shù)組名作函數(shù)參數(shù)(地址傳遞)、數(shù)組名作函數(shù)參數(shù)(地址傳遞)1、數(shù)組名作參數(shù),實參與形參都必須定義2、實參與形參類型必須一致,大小

3、可以不一致,并且形參可以不指定大小。C編譯不對形參大小作檢查,只將實參首地址傳給形參。例例8.11可以改為:可以改為:地址傳遞實例:地址傳遞實例:錯誤void sort2(float a2)float x; if (a0a1) x=a0;a0=a1;a1=x; return;main()float b2;scanf(%f,%f,&b0,&b1);sort2(b);printf(max=%f,min=%fn,b0,b1);3、用多維數(shù)組名作函數(shù)參數(shù)、用多維數(shù)組名作函數(shù)參數(shù)形參可以省略第一維大小的說明。形參可以省略第一維大小的說明。實參數(shù)組必須大于等于形參數(shù)組個數(shù)。實參數(shù)組必須大于等于形參數(shù)組個數(shù)

4、。8.8局部變量與全局變量1、局部變量:函數(shù)內(nèi)定義的變量。(內(nèi)部變量,如參數(shù))2、全局變量:函數(shù)外定義的變量。(外部變量,習(xí)慣上第一個字 母大寫)作用域:有效的范圍局部:函數(shù)內(nèi)全局:從定義程序結(jié)束全局變量實例:全局變量缺點:破壞封閉性、全局變量缺點:破壞封閉性、清晰性。建議少用。清晰性。建議少用。*8局部變量與全部變量重名局部變量與全部變量重名 8.9變量的存儲類別變量的存儲類別1、分類、分類靜態(tài)存儲類:程序運行時分配固定的存儲空間動態(tài)存儲類:程序運行時根據(jù)需要動態(tài)分配存儲空間具體分為:自動型變量 auto靜態(tài)型變量 static寄存器型變量 register外部變量聲明 extern自動型變

5、量 auto:在動態(tài)存儲區(qū)分配存儲空間 未定義存儲類別的變量均為未定義存儲類別的變量均為auto 型型 存儲類別存儲類別 數(shù)據(jù)類別數(shù)據(jù)類別 變量變量1,變量,變量2,變量變量n; auto int b,c=3;只能取其一用用static 聲明局部變量:只能賦一次初值,函數(shù)結(jié)束后仍保留原聲明局部變量:只能賦一次初值,函數(shù)結(jié)束后仍保留原 值,但在函數(shù)外不能用。下次調(diào)用時已值,但在函數(shù)外不能用。下次調(diào)用時已 有初值。作用域不等于生存期。有初值。作用域不等于生存期。 7 8 9 static不賦初值為不賦初值為0(數(shù)值型)或為空(字符型)。(數(shù)值型)或為空(字符型)。 auto-不賦初值為一個不確定值

6、。不賦初值為一個不確定值。register變量:節(jié)省到內(nèi)存的存取時間變量:節(jié)省到內(nèi)存的存取時間 不能定義太多的寄存器型變量不能定義太多的寄存器型變量 優(yōu)化的編譯系統(tǒng)能自動識別、自動設(shè)優(yōu)化的編譯系統(tǒng)能自動識別、自動設(shè)register型。型。 static型變量不能設(shè)為型變量不能設(shè)為register 型型 。用用extern 聲明外部變量:如果在外部變量定義之前,使用該變量聲明外部變量:如果在外部變量定義之前,使用該變量 則必須在引用該變量之前,用則必須在引用該變量之前,用extern來來 聲明聲明 該變量。該變量。 *在一文件中使用另一個文件中定義的變量,必須用在一文件中使用另一個文件中定義的變

7、量,必須用extern 來對該變量進行聲明來對該變量進行聲明 。用用static 聲明聲明 外部變量:外部變量: 用用static 聲明聲明 外部變量不能再被其它文件使用,只限于定義的外部變量不能再被其它文件使用,只限于定義的文件使用。文件使用。*文件文件2不能使用文件不能使用文件1中的外部變量中的外部變量定義性聲明:定義定義性聲明:定義引用性聲明:聲明引用性聲明:聲明 8。10 內(nèi)部函數(shù)與外部函數(shù)內(nèi)部函數(shù)與外部函數(shù)內(nèi)部函數(shù):只能被本文件中的其它函數(shù)調(diào)用的函數(shù)。格式為:內(nèi)部函數(shù):只能被本文件中的其它函數(shù)調(diào)用的函數(shù)。格式為:外部函數(shù):可以被其它文件調(diào)用的函數(shù)。(外部函數(shù):可以被其它文件調(diào)用的函數(shù)

8、。(1)、定義格式為:)、定義格式為: extern 類型標(biāo)識符類型標(biāo)識符 函數(shù)名函數(shù)名 (形參表)(形參表) *定義外部函數(shù)時定義外部函數(shù)時extern 可省略可省略(2)、其它文件調(diào)用該函數(shù)時,要事先用)、其它文件調(diào)用該函數(shù)時,要事先用extern 聲明。聲明。*main()原有的原有的extern聲明可以不要聲明可以不要1、C語言中,若未說明函數(shù)的類型,則系統(tǒng)默認(rèn)該函數(shù)的類型為_。Afloat B.char C.int D.double 2、#include main()int a=1,b=2; printf(%d,f(a,b);printf(%d,f(a,b);f(int x,int

9、y )static int a=3,b=4; a + = b * 2 ; b = a + x + y ;return (b) ;結(jié)果為:_.3、如果要使一個變量只能為本函數(shù)所使用,必須通過來實現(xiàn)。(A)外部變量說明 (B)靜態(tài)內(nèi)部變量(C)靜態(tài)外部變量 (D)局部變量說明 4、以下正確的函數(shù)定義形式是。 (A)int max(int x,int y); (B) int max(int x;int y);(C) int max(int x,int y) (D) int max(int x, y); 5、int test()int x=0; static int y=2;y+=+x;return(x+y); main() printf(“%dn”,(test(),test()

溫馨提示

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

評論

0/150

提交評論