为什么在把多维数组传递给函数时必须要指定除第一维之外的其他维

来源:互联网 发布:爱奇艺网络电影票房 编辑:程序博客网 时间:2024/04/29 22:00

      首先,我们需要看一张图:


      我们可以看到,这一个 3*2 的二维数组,在第三行第一列的位置上存储着数字 5 ,如果我给一个函数输入这个二维数组作为参数,应该怎么做呢?

#include <stdio.h>void print(int test[][2]);int main(int argc, char *argv[]){int test_array[3][2] = {1, 2, 3, 4, 5, 6};print(test_array);return 0;}void print(int test[][2]){printf("test[2][1] = %d\n", test[2][0]);}

      上面这段程序输出的是数字 5 。达到了我们想要的目的,那么为什么需要输入第二维呢?(在这个简单的例子中是第二维,更多维也是一样)

      因为,你在编写程序的时候你知道一行有多少个元素,但是编译器并不知道一行有多少个元素,而且数组是一段连续的内存,所以,编译器并不知道几个元素并成为一行,也就是列数,所以,我们必须指定除第一维之外的其他维。

原创粉丝点击