为什么在把多维数组传递给函数时必须要指定除第一维之外的其他维
来源:互联网 发布:爱奇艺网络电影票房 编辑:程序博客网 时间: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 。达到了我们想要的目的,那么为什么需要输入第二维呢?(在这个简单的例子中是第二维,更多维也是一样)
因为,你在编写程序的时候你知道一行有多少个元素,但是编译器并不知道一行有多少个元素,而且数组是一段连续的内存,所以,编译器并不知道几个元素并成为一行,也就是列数,所以,我们必须指定除第一维之外的其他维。
- 为什么在把多维数组传递给函数时必须要指定除第一维之外的其他维
- Jquery 去掉样式一样table的第一行和除第一列之外的其他列,给td 添加样式
- 函数参数传递整形数组时,必须要以数组长度作参数。
- 把数组传递给函数
- 函数传递多维数组
- 利用递归把多维数组转为一维数组的函数
- 使用指针来将多维数组传递给函数
- 多维数组的传递
- 一维数组和二维数组传递给函数时的本质
- 多维数组 函数参数传递
- 把参数传递给其他的 Exe 程序并执行
- 我怎样在函数参数传递时混用静态和动态多维数组?
- C++构造函数、析构函数必须要给成公有的吗?
- 为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?
- 为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?
- 怎样把数组作为参数传递给函数
- linux删除除某文件之外的其他文件
- 为什么必须要在OC门输出的IO口上加上拉电阻?
- 使用websphere反复出现不能找到spring方法的错误
- AppBox升级进行时 - 扁平化的权限设计
- 找工作
- java web
- js模拟弹性运动+自由落体,拖动滚动条自动下坠
- 为什么在把多维数组传递给函数时必须要指定除第一维之外的其他维
- 中兴软创笔试题一
- 中兴软创笔试题二
- 马的走法
- 机房收费(一)
- 微软Office移动Android版终于在亚洲推出
- Linux上vi(vim)编辑器使用教程
- C++四种强制类型转换
- Hibernate:Could not execute JDBC batch update 以及Hibernate:NO database selected