函數的定義與參數(初學者)
阿新 • • 發佈:2019-01-28
調用 傳遞 調用函數 工作 系統 分配內存 函數返回 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),單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。
函數的定義與參數(初學者)