例如:可以寫為:
void nzp(int a[])
或寫為
void nzp(int a[],int n)
其中形參數(shù)組a沒有給出長度,而由n值動態(tài)地表示數(shù)組的長度。n的值由主調函數(shù)的實參進行傳送。
由此,例5.6又可改為例5.7的形式。
[例5.7]
void nzp(int a[],int n)
{
int i;
printf("\nvalues of array a are:\n");
for(i=0;i {
if(a[i]<0) a[i]=0;
printf("%d ",a[i]);
}
}
main()
{
int b[5],i;
printf("\ninput 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
printf("initial values of array b are:\n");
for(i=0;i<5;i++)
printf("%d ",b[i]);
nzp(b,5);
printf("\nlast values of array b are:\n");
for(i=0;i<5;i++)
printf("%d ",b[i]);
}
void nzp(int a[],int n)
{ ……
}
main()
{
……
nzp(b,5);
……
}
本程序nzp函數(shù)形參數(shù)組a沒有給出長度,由n 動態(tài)確定該長度。在main函數(shù)中,函數(shù)調用語句為nzp(b,5),其中實參5將賦予形參n作為形參數(shù)組的長度。
d. 多維數(shù)組也可以作為函數(shù)的參數(shù)。 在函數(shù)定義時對形參數(shù)組可以指定每一維的長度,也可省去第一維的長度。因此,以下寫法都是合法的。
int MA(int a[3][10])
或
int MA(int a[][10])
void nzp(int a[])
或寫為
void nzp(int a[],int n)
其中形參數(shù)組a沒有給出長度,而由n值動態(tài)地表示數(shù)組的長度。n的值由主調函數(shù)的實參進行傳送。
由此,例5.6又可改為例5.7的形式。
[例5.7]
void nzp(int a[],int n)
{
int i;
printf("\nvalues of array a are:\n");
for(i=0;i
if(a[i]<0) a[i]=0;
printf("%d ",a[i]);
}
}
main()
{
int b[5],i;
printf("\ninput 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
printf("initial values of array b are:\n");
for(i=0;i<5;i++)
printf("%d ",b[i]);
nzp(b,5);
printf("\nlast values of array b are:\n");
for(i=0;i<5;i++)
printf("%d ",b[i]);
}
void nzp(int a[],int n)
{ ……
}
main()
{
……
nzp(b,5);
……
}
本程序nzp函數(shù)形參數(shù)組a沒有給出長度,由n 動態(tài)確定該長度。在main函數(shù)中,函數(shù)調用語句為nzp(b,5),其中實參5將賦予形參n作為形參數(shù)組的長度。
d. 多維數(shù)組也可以作為函數(shù)的參數(shù)。 在函數(shù)定義時對形參數(shù)組可以指定每一維的長度,也可省去第一維的長度。因此,以下寫法都是合法的。
int MA(int a[3][10])
或
int MA(int a[][10])

