版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、會計學1四講函數及變量的作用域四講函數及變量的作用域第1頁/共64頁第2頁/共64頁即函數返回值的類型。無返回值為void類型語句序列。描述了實現(xiàn)功能的過程,并一般要最后執(zhí)行一條return語句??砂鄠€形式參數。定義了函數將從調用函數中接收多少個數據及其類型第3頁/共64頁 第4頁/共64頁即所有參數的數據類型第5頁/共64頁注注 意意第6頁/共64頁#include void f1 ( ) ; /函數說明void f2 ( ) ;void main( ) f1( ); /函數調用 f2( ); void f1( ) /函數定義 cout Function f1.n;f2( );void
2、f2( ) cout Function f2 .n;main()f1()f2()第7頁/共64頁第8頁/共64頁第9頁/共64頁第10頁/共64頁函數聲明函數聲明調用表達調用表達式式函數定義函數定義實參的個數、類型及順序要與形參保持一致形式參數實際參數第11頁/共64頁第12頁/共64頁有時也稱:第13頁/共64頁#include #include void swap(void swap(int,intint,int); ); void main( )void main( ) int int a=3,b=5; a=3,b=5; c o u t b e f o r e s w a p c o u
3、 t b e f o r e s w a p :a=a,b=bendl;:a=a,b=bendl; swap( swap(a,ba,b); ); coutafter swap :a=a,b=bendl; coutafter swap :a=a,b=bendl; void swap(void swap(int a,int bint a,int b) ) int temp; int temp; temp=a; a=b; b=temp;temp=a; a=b; b=temp; coutin swap :a=a,b=bendl; coutin swap :a=a,b=bendl; 第14頁/共64頁調
4、用swap時,內存單元分配情況:353ababtemp 實參 形參3535實參形參35過程調用中35過程調用后temp=a; a=b; b=temp;第15頁/共64頁第16頁/共64頁#include #include void swap( void swap(int int * *,int ,int * *); ); void main( ) void main( ) int int a=3,b=5; a=3,b=5; coutbefore swap :a=a,b=bendl; coutbefore swap :a=a,b=bendl; swap( swap(&a,&ba,
5、&b); /); /實參為變量地址 coutafter swap :a=a,b=bendl;coutafter swap :a=a,b=bendl; void swap(void swap(int int * * a,int a,int * *b b) /) /形參為指針類型 int temp; int temp; temp=temp=* *a; a; * *a=a=* *b; b; * *b=temp; /b=temp; /注意引用方式 coutin swap :a=a,b=bendl; coutin swap :a=a,b=bendl; 第17頁/共64頁調用swap時,內存單元分
6、配情況:35353過程調用后 形參ababtemp 實參3510012008實參形參2008100120081001過程調用中35temp=*a; *a=*b; *b=temp;第18頁/共64頁第19頁/共64頁#include void swap(int &,int &); void main( ) int a=3,b=5; c o u t b e f o r e s w a p :a=a,b=bendl; swap(a,b); /實參為變量名 coutafter swap :a=a,b=bendl; void swap(int & a,int &b) /形
7、參為引用類型 int temp; temp=a; a=b; b=temp; /注意區(qū)別 coutin swap :a=a,b=bendl; 第20頁/共64頁調用swap時,內存單元分配情況:35353過程調用后 形參ababtemp 實參35實參形參20081001過程調用中35temp=a; a=b; b=temp;第21頁/共64頁第22頁/共64頁 #include #include int add(int x,int y); int add(int x,int y); /函數聲明函數聲明 void main( )void main( ) int a=4,b=6; int a=4,b=
8、6; int z=add( int z=add(+a,a+b+a,a+b); /); /從左至右為從左至右為5 5 1111 coutzendl; / coutzendl; /從右至左為從右至左為5 5 1010 int add(int x,int y) int add(int x,int y) /函數定義(實現(xiàn)函數定義(實現(xiàn)) return x+y; return x+y; 第23頁/共64頁第24頁/共64頁第25頁/共64頁第26頁/共64頁void invert(char b,int n) for(int i=0;in/2;i+) char c=bi; bi=bn-1-i; bn-1-
9、i=c; S0S1S2S3S4不能寫成invert(sn,n)有問題嗎?第27頁/共64頁第28頁/共64頁cout字符串反轉后的順序:sendl;void invert(char *b,int n) for(int i=0;iy) ? x: y); double max (double x , double y) return ( (xy) ?x: y); #include void main( ) coutmax(10,20)endl; coutmax(1.23,2.34)endl; 靠將實參的個數及類型和所被調用的f()函數的形參的個數及類型一一比較來判斷。第38頁/共64頁()作為重載
10、函數至少在參數個數、參數類型上有所不同。若僅在返回類型上不同,編譯器是無法區(qū)別的。如:void func(int); int func(int);void func(int); int func(int); /錯誤 int min(int ,int); int min(int ,int); int min(int,int,int);int min(int,int,int); /正確 int add(int,int); int add(int,int); double add(double,double);double add(double,double);/正確()typedef定義的類型只是
11、給已有類型取另外一個名字,編譯器不能將其同原類型區(qū)分。如: typedef INT int;typedef INT int; void func(int x) . void func(int x) . void func (INT x) void func (INT x) (3)重載函數一般應具有相同的功能,否則會破壞程序的可讀性。第39頁/共64頁第40頁/共64頁第41頁/共64頁#include #include const int k=4;const int k=4;constconst int n=6; int n=6; /符號常量定義符號常量定義int power(int,int)
12、; int power(int,int); /求冪的函數說明求冪的函數說明int sum(int,int); int sum(int,int); /求和的函數說明求和的函數說明void main( )void main( ) coutSum of coutSum of = ;= ; coutsum(k,n)endl; coutsum(k,n)endl; /調用調用sumsum函數函數 第42頁/共64頁int sum(int k,int n)int sum(int k,int n)/ /* *計算計算1 1到到n n的的k k次方之累加和次方之累加和* */ / int s=0; int s=
13、0; for(int i=1;i=n;i+) for(int i=1;i=n;i+) s+= power(i, k); s+= power(i, k); /累加累加 return s; return s; /調用調用f1f1函數函數 int power(int m,int n)int power(int m,int n)/ /* *計算計算mm的的n n次方次方* */ / int p=1, i; int p=1, i; for(i=1;in;i+) p for(i=1;i1三、調用函數本身,但參數值趨于結束條件一、有一個使遞歸結束的條件二、當條件成立時,不再調用自己,而有確定值第44頁/共6
14、4頁s:=fac(3)主程序fac(3):=fac(2)*3n=3fac(2):=fac(1)*2n=2fac(1):=1n=1fac:=6fac:=2fac:=1第45頁/共64頁第46頁/共64頁 第47頁/共64頁第48頁/共64頁在不同作用域中允許同名。在同一作用域中不允許同名。藍色為函數作用域綠色為塊作用域不為x x的原因是局部優(yōu)局部優(yōu)先先4 5 4 5 4 505第49頁/共64頁第50頁/共64頁#includeint i(5); /外部變量外部變量externstatic int j(6); /外部靜態(tài)變量外部靜態(tài)變量void min(int x,int y ) /形參形參 i
15、nt i(3); /自動變量自動變量 auto register int j(2); /寄存器變量寄存器變量 static int k(1); /內部靜態(tài)變量內部靜態(tài)變量 void main( ) 局部變量全局變量藍色為文件作用域綠色為函數作用域注意:同名時是局部優(yōu)先第51頁/共64頁5 7 105 7 105 8 8.85 8 8.88 8 88 8 88 7 108 7 108 8 8.88 8 8.8第52頁/共64頁第53頁/共64頁第54頁/共64頁sum(15)ave(15)第55頁/共64頁第56頁/共64頁第57頁/共64頁第一輪第一輪 B D C A E原數據原數據 B E D C A第三輪第三輪 B A C D E第二輪第二輪 B C A D E第四輪第四輪 A B C D E 4 3 2 1結論:輪數結論:輪數(外循環(huán)外循環(huán))為為:n-1,每輪次數每輪次數(內循環(huán)內循環(huán))為為:n-i第58頁/共64頁第59頁/共64頁第60頁/共64頁else
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)綠化景觀的規(guī)劃與實施
- 2025年度仇媛與張偉離婚后共同債務承擔協(xié)議3篇
- 2025年度特許經營合同:甲方連鎖企業(yè)與乙方加盟方關于特許經營的具體約定3篇
- 2024年:私募資金三方監(jiān)管協(xié)議樣本
- 河北環(huán)境工程學院《房地產經營與管理》2023-2024學年第一學期期末試卷
- 河北化工醫(yī)藥職業(yè)技術學院《汽車保險與理賠》2023-2024學年第一學期期末試卷
- 第十九章生活用電單元測試卷2022-2023學年人教版九年級物理全一冊
- 2024年甲乙雙方共同簽訂的辦公房屋租賃合同
- 小學教師信息技術應用能力提升路徑
- 小學英語課堂教學中的師生互動策略研究
- 超短波操作流程圖
- 小學2022 年國家義務教育質量監(jiān)測工作方案
- 化學品安全技術說明(膠水)
- 南寧市中小學學籍管理系統(tǒng)數據采集表
- 中空吹塑成型課件
- 領先閱讀X計劃第四級Bug Hunt 教學設計
- 《詩詞格律》word版
- 預算第二十三講
- 高中體育與健康人教版全一冊 6.2田徑—短跑 課件(共11張PPT)
- 蔬菜供貨服務保障方案
- WordA4信紙(A4橫條直接打印版)
評論
0/150
提交評論