c语言中多维数组的传递

 

接收多维数组的函数,可以省略相当于开头下标的n维数组的个数,但是,(n - 1)维下的的元素个数必须是常量。

实质上是多维数组在传递过程中,最高维上表示元素个数是可变的,最高维之后的元素类型是不可变得,比如 int x[][3][2], 元素个数是可变得,而int [3][2]型是固定的。 

 

001、

 

[root@PC1 test]# ls
test.c
[root@PC1 test]# cat test.c                     ## 测试c程序
#include <stdio.h>
void print_array(const int x[][3], int y);      // 函数原型声明,多维数组的传递
int main(void)
{
        int a[2][3] = {{2,4,3},{4,3,2}};
        int b[4][3] = {{2,2,1},{2,4,3},{7,9,4},{4,2,8}};
        print_array(a,2);
        puts("--------------------------------------");
        print_array(b,3);
        return 0;
}
void print_array(const int x[][3], int y)         //函数定义,多维数组的传递,可以省略最高位的数组元素的个数
{
        int i,j;
        for(i = 0; i < y; i++)
        {
                for(j = 0; j < 3; j++)
                {
                        printf("%4d", x[i][j]);
                }
                putchar('\n');
        }
}
[root@PC1 test]# gcc test.c -o kkk               ##  编译
[root@PC1 test]# ls
kkk  test.c
[root@PC1 test]# ./kkk                           ## 运算测试
   2   4   3
   4   3   2
--------------------------------------
   2   2   1
   2   4   3
   7   9   4

 。

 



posted @ 2024-11-21 13:03  小鲨鱼2018  阅读(4)  评论(0编辑  收藏  举报