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
。