多维数组的传递
接收多维数组的函数,可以省略相当于开头下标的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)。
注:所接收的数组的元素类型必须固定,但元素个数是自由的。
代码示例:为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; }
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子里和园子外的大大们指正错误,共同进步。或者直接私信我 (^∀^)
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
本博客的所有打赏均将用于博主女朋友的化妆品购买以及养肥计划O(∩_∩)O。我是【~不会飞的章鱼~】!