多維數組的傳遞

接收多維數組的函數,能夠省略至關於開頭下標的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; }

 

相關文章
相關標籤/搜索