二級C語言考試輔導教程第五章:函數(shù)[5]

字號:

例如:可以寫為:
     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])