1. 程式人生 > >函數的定義與參數(初學者)

函數的定義與參數(初學者)

調用 傳遞 調用函數 工作 系統 分配內存 函數返回 code div

1、函數定義的一般形式:

(1)定義無參函數的一般形式為:

類型標識符 函數名()

{

  聲明部分

  語句部分

}

在定義函數時要用“類型標識符”指定函數值的類型,即函數帶回來的值的類型。

(2)定義有參函數的一般形式為:

類型標識符 函數名(形式參數表列)

{

  聲明部分

  語句部分

}

例:

int max(int x,int y)
{
    int z;/*聲明部分*/
    z=x>y?x:y;
    return(z);
}

(3)定義空函數的一般形式為:

類型標識符 函數名()

{}

例:

dummy()

{}

註:定義函數時不寫類型標識符時,系統默認為int。

調用此函數時,什麽工作也不做,沒有任何作用。但其在程序開發時作為一個虛設部分常常也是很有用的。

2、參數函數和函數的值

形式參數:在定義函數時函數名後面括號中的變量名稱稱為形式參數(簡稱形參)。

實際參數:主調函數中調用一個函數時,函數名後面括號中的參數稱為實際參數(簡稱實參),即實參出現在主調函數中。

大多數情況下,主調函數和被調用函數之間有數據傳遞的關系。

return後面括弧中的值()作為函數帶回的值(稱函數返回值)。

在不同函數之間傳遞數據,可以使用的方法:

參數:通過形參和實參。

返回值:用return語句返回計算結果。

全局變量:外部變量(不提倡使用)。

例:

#include <stdafx.h>
#include
<stdio.h> void main() { int max(int x,int y);/*max函數聲明*/ int a,b,c; scanf("%d%d",&a,&b); c=max(a,b); printf("Max is %d:",c); } int max(int x,int y) { int z; z=x>y?x:y; return(z); }

關於形參與實參的說明:

(1)在定義函數中指定的形參,在未出現函數調用時,它們並不占內存中的儲存單元。只有在發生函數調用時,函數中的形參才被分配內存單元。在調用結束後,形參所占的內存單元也被釋放。

(2)實參可以是常量,變量或表達式。

如:max(3,a+b);

但要求它們有確定的值。在調用時將實參的值賦給形參。

(3)在被定義的函數中,必須指定形參的類型。

(4)實參與形參的類型應相同或賦值兼容。

(5)在C語言中,實參向對形參的數據傳遞是“值傳遞”(相當與copy),單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。

函數的定義與參數(初學者)