一、函式的定義與使用:
呼叫其他函式的函式稱為主調函式,被其他函式呼叫的函式稱為被調函式。
乙個c++程式可以由乙個主函式和若干子函式構成,由主函式呼叫子函式,子函式還可以再呼叫其他子函式。主函式是程式執行的起點。
2.函式定義的語法形式
型別說明符 函式名(含型別說明的形式參數列)
eg:double power (double x,int n)//計算x的n次方
3.形式引數
形參作用:實現主調函式與被調函式之間的聯絡。
通常將函式所處理的資料、影響函式功能的因素或者函式處理的結果作為形參。
eg:(int i)int型別識別符號表示形參型別,i為形參名
4.函式的返回值和返回值的型別
函式可以有乙個返回值,函式的返回值是需要返回給主調函式的處理結果。 return 表示式;
乙個函式也可以不將任何值返回給主調函式,此時型別識別符號為void。void main{}
main函式的返回值最終傳遞給作業系統。
5.函式的呼叫形式
a. 在定義乙個函式之後,可以直接呼叫這個函式;如果想要在定義之前使用它,則需要在呼叫函式之前新增該函式的函式原型宣告。函式原型宣告形式:型別說明符 函式名(含型別說明的形參表)
eg:double power(double x,int n);
b.宣告完之後便可以按如下形式呼叫子函式:
函式名(實參列表)
c. 函式呼叫作為一條語句,可以無返回值;出現在表表示式中,必須有乙個明確的返回值。
6.巢狀呼叫:如果函式1呼叫了函式2,函式2再呼叫函式3。
eg:兩整數的平方和。
fun1:求乙個整數的平方函式/fun2:平方和函式
int fun1(int m)
int fun2(int x,int y)
int main
7.遞迴呼叫:函式可以直接或者間接呼叫自身
eg:階乘//計算n的階乘
unsigned fac(unsigned n)
8.函式的引數傳遞:形參與實參結合(形實結合)的過程,形實結合的方式有值傳遞和引用傳遞。
a.值傳遞:發生函式呼叫時,給形參分配空間,直接將實參的值給形參。這一過程為單向傳遞,一旦形參獲得了值便於實參脫離關係。
子函式中對形參做的改變對主函式中的實參無效。
b.引用傳遞:用引用作為形參,在函式呼叫的時候發生的引數傳遞。《引用是一種特殊型別的變數,可以被認為是另乙個變數的別名》
void swap(int &a,int &b)
int main
二、內聯函式
1.語法形式:inline型別說明符 函式名(含型別說明的形參表)
//定義函式時加關鍵字inline
2.說明:內聯函式不是在呼叫時發生控制轉移,而是在編譯時將函式體嵌入在每乙個呼叫處。
3.適用物件:對一些功能簡單、規模較小又使用頻繁的函式。現代編譯器中,沒有用inline修飾的函式也有可能被編譯為內聯。若將乙個複雜函式定義為內聯函式,反而會造成**膨脹,增大開銷,多數編譯器會將其轉換為普通函式來處理。
三、帶預設形參值的函式
1.函式在定義前可以預先宣告預設的形參值。呼叫時給出實參,則用實參初始化形參,如果沒有給出實參,則採用預先宣告的預設形參值。
舉例:int add(int x=5,y=6)
int main()
2.注意:
a.有預設值的形參必須在形參列表的最後。
int add(int x=1,int y=2,int z)//錯誤
b.在相同的作用域內,不允許在同乙個函式的多個宣告中對同一引數的預設值重複定義,即使前後定義的值相同也不行。
int add(int x=5,int y=6);//預設形參值在原型函式中給出
int main()
int add(int x/=5/,int y/=6/)
四、函式過載:兩個以上的函式,具有相同的函式名,但是形參的個數或者型別不同,編譯器根據實參和形參的型別及個數的最佳匹配,自動確定呼叫哪個函式。//整數實數
注意:a.過載函式的形參必須不同:個數不同或者型別不同。
eg:int add(int x,int y)
float add(float x,float y)
b.不要將功能不同的函式定義為過載函式。
c.使用當具有預設形參值的函式過載形式時,防止二義性。
五、c++系統函式
1.系統函式的原型宣告已經全部由系統提供了,分類儲存在不同的標頭檔案中,我們需要用include指令嵌入相應的標頭檔案,然後便可以使用系統函式。eg:#include
2.注意:編譯環境提供的系統函式分為標準c++函式和非標準c++函式。非標準c++函式指當前作業系統或編譯環境中所特有的系統函式。優先使用標準c++函式,各種編譯環境普遍支援,具有很好的移植性;在處理和系統操作有關的事物等時,需要使用非標準c++函式。
3.查閱常用標準c++函式的原型、標頭檔案和用法**:
C語言程式設計
輸入乙個字串其中包含一鐘特殊的字元 其餘都是數字比如 12?32 設這個數字為w 再輸入乙個同一長度的整形數字x 要求計算w大於x的個數 include include include include void main int detect char s return counter int co...
c語言程式設計
1.輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2.輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 include stdio.h main 小數部分3位寬度,整個數字9位...
C語言,程式設計
程式可以分為三種基本結構 順序結構,分支結構,迴圈結構 c程式的執行部分是由語句組成的,程式的功能也是由執行語句實現的,c語句可以分為以下五大類 表示式語句,函式呼叫語句,控制語句,復合語句,空語句 表示式語句 表示式加上分號 函式呼叫語句 由函式名,實際引數加上分號 一般形式為 函式名 引數 控制...