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 @   小鲨鱼2018  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2023-11-21 如何在word方框内打v_如何在word方框内打v
2021-11-21 R语言中which函数的简单用法,主要用于返回指定条件项的索引
2021-11-21 linux 系统中sed预存储技术 示例
2021-11-21 正则表达式通配符 + 和 * 的区别
2021-11-21 linux系统中同时提取多个文件的前几行并合并为新文件
2021-11-21 linux系统中添加空行
2021-11-21 linux系统中正则表达式记录
点击右上角即可分享
微信分享提示