什么是函數(shù)?函數(shù)是能夠?qū)崿F(xiàn)特定功能的程序模塊,他可以是只有一條語句的簡單函數(shù),也可以是包含許多子函數(shù)的復雜函數(shù)。 函數(shù)的分類1.簡單函數(shù)和復雜函數(shù) 2.庫函數(shù)和自定義函數(shù) 3.功能函數(shù):字符函數(shù)、日期函數(shù)、數(shù)學函數(shù)、圖形函數(shù)、內(nèi)存函數(shù)等。 注: 一個程序可以只有一個主函數(shù),但是不可以沒有函數(shù)。 函數(shù)的定義類型標識符 函數(shù)名 (形參列表) {變量的聲明語句} 注:
實例: int GetMax(int a , int b){int a; //變量的聲明int b;if a>b //函數(shù)功能語句的實現(xiàn)return a;elsereturn b;} 函數(shù)的聲明int GetMax(int a ,int b); 函數(shù)聲明被稱為函數(shù)原型,函數(shù)聲明時可以省略變量名。 實例: 函數(shù)的使用 #include <iostream>using namespace std;int GetMax(int ,int ); //函數(shù)聲明int GetMax(int a ,int b) //函數(shù)的實現(xiàn){if (a>b) //函數(shù)功能語句的實現(xiàn)return a;elsereturn b;}void main(){ cout << GetMax(5, 9) << endl; //函數(shù)的調(diào)用 --實參system('pause');} 注: 函數(shù)的聲明,函數(shù)的實現(xiàn),變量的聲明,變量的使用,函數(shù)的調(diào)用。 結(jié)果為: 函數(shù)參數(shù)和返回值函數(shù)參數(shù): 函數(shù)的輸入(input) 函數(shù)返回值:函數(shù)的輸出(output) 返回值要求:
空函數(shù)沒有參數(shù)和返回值,函數(shù)的作用域也為空的函數(shù)即空函數(shù)。 void setname(){} 存在的意義:預定義功能 在程序設計中往往根據(jù)需要確定若干模塊,分別由一些函數(shù)來實現(xiàn)。因此就需要先定義一個空函數(shù)占位,然后在開發(fā)。是程序設計的結(jié)構(gòu)清除,可讀性好,以后擴充新功能方便,且對程序結(jié)構(gòu)影響不大。形參、實參和無參 形參:a,b ---輸入變量 --函數(shù)調(diào)用時賦值。 int GetMax(int a ,int b ){int a; //變量的聲明int b;if a>b //函數(shù)功能語句的實現(xiàn)return a;elsereturn b;} 實參:函數(shù)調(diào)用時賦值即實參。 void main(){ GetMax(5,9); //函數(shù)的調(diào)用 --實參} 注:
默認參數(shù)在調(diào)用有參函數(shù)時,如需經(jīng)常傳遞同一個值到調(diào)用函數(shù),在定義時,可以為參數(shù)設置一個默認值,這樣在調(diào)用函數(shù)時就可以省略一些參數(shù),此時程序?qū)⒉扇∧J值作為函數(shù)的實際參數(shù)。 實例:定義參數(shù)默認值 #include<iostream>using namespace std;void WelYou(const char* wy='劍云鋒謝謝你們的支持,讓我們共同成長!'){cout<<wy<<endl; //輸出默認值}void main(){ WelYou(); //調(diào)用函數(shù)(默認參數(shù)作實參) WelYou('劍云鋒祝愿大家新年快樂!'); //直接傳遞實參。 system('pause');} 注: 默認參數(shù)不能出現(xiàn)在非默認參數(shù)的左方。否則會導致編譯錯誤。 結(jié)果為: 可變參數(shù)可變參數(shù):“...”表示可變。例如庫函數(shù)printf函數(shù)。 _CRTIMP int_cdecl printf(const char* , ...);printf('%d\n','劍云鋒'); //輸出一項信息printf('%s-%s-%s\n', '劍云鋒','歡迎你',',謝謝!'); //輸出多項信息 注: 可變參數(shù)的函數(shù),在定義函數(shù)時需要一一讀取用戶傳遞的實際參數(shù)??梢允褂胿a_list 類型和va_start,va_arg,va_end 3個宏 讀取傳遞到函數(shù)的參數(shù)值。使用可變參數(shù),需引用stdarg.h頭文件。 實例:可變參數(shù)的定義和調(diào)用。 #include<iostream>#include<stdarg.h> //包含宏頭文件using namespace std;void WelYou(int num ,...) //定義可變參數(shù)函數(shù){va_list arguments; //定義va_list類型變量va_start(arguments,num);while(num--){char* wy =va_arg(arguments,char*); //獲取字符串數(shù)據(jù)int i=va_arg(arguments,int ); //獲取整型數(shù)據(jù)cout<<wy<<endl; //輸出字符串cout<<i<<endl; //輸出整數(shù)}va_end(arguments);}void main(){ WelYou(2, '劍云鋒',2018,'劍云鋒', 2019);//調(diào)用WelYou函數(shù)system('pause');} 結(jié)果為: 函數(shù)變量作用域變量位置分類:全局變量和局部變量。 全局變量:在函數(shù)體外定義的變量稱為全局變量。 局部變量:在函數(shù)體內(nèi)定義的變量稱為局部變量。 實例: #include <iostream>using namespace std;int total; //定義全局變量int GetCount(); //聲明函數(shù)void main(){int total=529; //局部變量cout<<total<<endl;cout<<GetCount()<<endl;system('pause');}int GetCount(){total=925; //給全局變量賦值return total;} 注:
結(jié)果為: 本文部分內(nèi)容參考至教材,如有錯誤,敬請指正,如有侵權(quán),請聯(lián)系修改,謝謝。 |
|
來自: 昵稱32937624 > 《待分類》