程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言-自定義函數,自定義函數

C語言-自定義函數,自定義函數

編輯:關於C語言

C語言-自定義函數,自定義函數


C語言自定義函數

-----------------------

--1-- 自定義函數定義1.1 無參無返回值函數1.2 無參有返回值函數1.3 有參無返回值函數1.4 有參有返回值函數--2-- 函數的參數2.1 形式參數介紹和使用2.2 實際參數介紹和使用2.3 函數的參數傳遞過程--3-- 函數的聲明及調用3.1 函數的聲明3.2 函數的調用

-----------------------

 

【寫在開頭:】

函數是一段可以重復使用的代碼,用來獨立地完成某個功能,它可以接收用戶傳遞的數據,也可以不接收。

自定義函數分為:

無參無返回值函數

無參有返回值函數

有參無返回值函數

有參有返回值函數

 

書寫格式:

返回值類型   函數名稱(函數參數){

函數體;

}

 

函數從定義到使用分三步:1、聲明     2、定義函數  3、調用函數

 

 

--1-- 自定義函數定義

1.1 無參無返回值函數

定義格式

一般形式:

  void 函數名(){

  聲明部分; //定義局部變量

  語句;

  }

 

如:

void sum(){
    //語句
}

 

1.2 無參有返回值函數

定義格式

一般形式:

  返回值類型  函數名(){

  聲明部分;

  語句;

  return 返回值類型:變量或常量;

  }

 

如:

int sum(){
    return 1 + 2;
}

 

1.3 有參無返回值函數

定義格式

一般形式:

  void 函數名(形式參數表列){

  聲明部分;

  語句;

  }

 

如:

void sum(int x, int y){
    //運算
}

 

1.4 有參有返回值函數

定義格式

一般形式:

  返回值類型  函數名(形參){

  聲明部分;

  語句;

  return 返回值類型變量或常量;

  }

 

如:

int sum(int x, int y){
    //運算
    return x + y;
}

 

 

--2-- 函數的參數

2.1 形式參數介紹和使用

定義函數的時候,函數名後面小括號中的參數,簡稱行參。

/**
 *  自定義sum函數
 *
 *  @param x 形參1
 *  @param y 行參2
 *
 *  @return 返回運算結果
 */
int sum(int x, int y){
    //運算
    return x + y;
}

 

注意:

1)形參定義後,並不會立即分配空間

  在函數被調用的時候才會真正的分配存儲空間

2)如果有多個形參,則用逗號“,”隔開

3)形參的類型可以不相同

4)在函數中不能定義和形參同名的變量

形參只出現在函數定義中,在整個函數體內部都可以使用,離開函數則不能再使用。

 

2.2 實際參數介紹和使用

調用函數時,函數名後面小括號的參數,簡稱實參。

實參出現在主調函數中,進入被調函數後,實參變量也不能使用。

形參和實參的功能是作數值的傳遞。發生函數調用時,主調函數把實參的值傳送給被調函數的形參,從而實現主調函數向被調函數數據的傳送。

int main(int argc, const char * argv[]) {
    int sum(int x, int y); //函數聲明
    
    int result = sum(3, 5); //此處3, 5是實參
    
    return 0;
}

/**
 *  自定義sum函數
 *
 *  @param x 形參1
 *  @param y 行參2
 *
 *  @return 返回運算結果
 */
int sum(int x, int y){
    //運算
    return x + y;
}

注意:

實參可以是變量,也可以是常量,也可以是表達式。

主調函數和被調函數是相對而言的。

 

2.3 函數的參數傳遞過程

1)形參變量只有在被調用時才分配存儲空間,在調用結束時,即刻釋放所分配的內存單元。

2)實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,他們都必須具有確定的值,以便把這些值傳遞給形參。

  因此應預先用賦值,輸入等方法使實參獲得確定的值。

3)實參和形參在數量、類型、順序上應嚴格一致。

 

 

--3-- 函數的聲明及調用

3.1 函數的聲明

在主調函數中,調用某被調函數之前應對該被調函數進行說明(聲明)。如果不進行聲明,則要將被調函數寫在主調函數上方。

一般形式:

  返回值類型  被調函數名(類型 形參,類型 形參…);

  返回值類型 被調函數名(類型,類型…);

    int sum(int x, int y); //函數聲明

 

3.2 函數的調用

一般形式為:

函數名 (實參表列);

    int result = sum(3, 5); //調用sum(int, int)函數

 

注意:

1)函數表達式

  函數作為表達式中的一項出現在表達式中

  m = max(34,10)+10;

 

2)函數調用作為另外一個函數的實參

 

3)函數的嵌套調用

   max(max(34, 44), 299);

 

4)函數名不能和變量名同名

    int sum = sum(3, 5); //錯 函數名不能和變量名同名

 

 

【寫在結尾:】

『封裝,作為面向對象的四大特性之一,隱藏了代碼的內部細節,提供一個對外的接口。C語言雖然是一個面向過程的語言,但是可以將一些常用的自定義函數合成一個自己的工具類,方便重用』

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved