接收多維數組的函數,能夠省略至關於開頭下標的n維的元素個數。可是,(n - 1)維之下的元素個數必須是常量。數組
如下是接收一維、二維、三維數組的參數的聲明示例:函數
void func1(int v[], int n); //元素類型爲int、元素個數隨意(n)。 void func2(int v[][3], int n); //元素類型爲int[3]、元素個數隨意(n)。 void func3(int v[][2][3], int n); //元素類型爲int[2][3]、元素個數隨意(n)。
注:所接收的數組的元素類型必須固定,但元素個數是自由的。spa
代碼示例:爲n行3列的二維數組的全部構成元素賦上一樣的值
#include<stdio.h> //將v賦值給元素類型爲int[3]、元素個數爲n的數組m的全部構成元素 void fill(int m[][3],int n,int v) { int i,j; for(i = 0;i < n;i++) for(j = 0;j < 3;j++) m[i][j] = v; } //顯示元素類型爲int[3]、元素個數爲n的數組m的全部構成元素 void mat_print(const int m[][3],int n) { int i,j; for(i = 0;i < n;i++){ for(j = 0;j < 3;j++) printf("%4d",m[i][j]); putchar('\n'); } } int main() { int no; int x[2][3] = {0}; //2行3列:元素類型爲int[3]、元素個數爲2 int y[4][3] = {0}; //4行3列:元素類型爲int[3]、元素個數爲4 printf("賦給全部構成元素的值:"); scanf("%d",&no); fill(x,2,no); fill(y,4,no); printf("---x---\n"); mat_print(x,2); printf("---y---\n"); mat_print(y,4); return 0; }