2.2 函數參數傳遞
一、調用函數向被調用函數以形式參數傳遞
用戶編寫的函數一般在對其說明和定義時就規定了形式參數類型,因此調用這些函數時參量必須與子函數中形式參數的數據類型、順序和數量完全相同,否則在調用中將會出錯,得到意想不到的結果。
注意:
當數組作為形式參數向被調用函數傳遞時,只傳遞數組的地址,而不是將整個數組元素都復制到函數中去,即用數組名作為實參調用子函數,調用時指向該數組第一個元素的指針就被傳遞給子函數。因為在Turbo C2.0中,沒有下標的數組名就是一個指向該數組第一個元素的指針。當然數組變量的類型在兩個函數中必須相同。
用下述方法傳遞數組形參。
例2:
#include<stdio.h>
void disp(int *n);
int main()
{
int m[10], i;
for(i=0; i<10; i++)
m[i]=i;
disp(m); /*按指針方式傳遞數組*/
getch();
return 0;
}
void disp(int *n)
{
int j;
for(j=0; j<10; j++)
printf("%3d", *(n++));
printf("\n");
}
另外,當傳遞數組的某個元素時,數組元素作為實參,此時按使用其它簡單變量的方法使用數組元素。例2按傳遞數組元素的方法傳遞時變為:
#include<stdio.h>
void disp(int n);
int main()
{
int m[10], i;
for(i=0; i<10; i++){
m[i]=i;
disp(m[i]); /*逐個傳遞數組元素*/
}
getch();
return 0;
}
void disp(int n)
{
printf("%3d\t");
}
這時一次只傳遞了數組的一個元素。