C++基础知识——二维数组做函数参数
来源:互联网 发布:java连接redis 编辑:程序博客网 时间:2024/06/05 22:56
1.确定大小的二维数组
void Func(int array[3][10]);
void Func(int array[][10]);
2.不确定大小的二维数组转为二维指针:
从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,所以可以转换成二维指针。
void Func(int **array, int m, int n);
调用时候要把数组名转换位二维指针
Func((int**)a, 3, 3);
获取具体数组元素
*((int*)array + n*i + j);
:其中 (int *)array把array转换成一维数组的存储方式
然后从一维数组里读取元素。
若*(array + n*i + j); 输出:
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
0000000A
0000000B
0000000C
0000000D
0000000E
0000000F
00000010
若*((int*)array + n*i + j); 输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
调用时候要把数组名转换位二维指针
Func((int*)a, 3, 3);
获取具体数组元素
*(array + n*i + j);
void Func(int array[3][10]);
void Func(int array[][10]);
2.不确定大小的二维数组转为二维指针:
从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,所以可以转换成二维指针。
void Func(int **array, int m, int n);
调用时候要把数组名转换位二维指针
Func((int**)a, 3, 3);
获取具体数组元素
*((int*)array + n*i + j);
:其中 (int *)array把array转换成一维数组的存储方式
然后从一维数组里读取元素。
若*(array + n*i + j); 输出:
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
0000000A
0000000B
0000000C
0000000D
0000000E
0000000F
00000010
若*((int*)array + n*i + j); 输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3.最方便的还是转为一维指针。
因为在内存中是连续存放的,所以。。。。。
void Func(int *array, int m, int n);调用时候要把数组名转换位二维指针
Func((int*)a, 3, 3);
获取具体数组元素
*(array + n*i + j);
0 0
- C++基础知识——二维数组做函数参数
- C 二维数组做函数参数
- 二维数组做函数参数
- 二维数组做函数参数
- 二维数组中的查找及C语言中二维数组做函数参数
- 二维数组做函数的参数
- c++二维数组做函数参数
- 二维数组做参数
- C++: 二维数组作函数参数
- C++: 二维数组作函数参数
- C/C++ 二维数组作为函数参数
- 二维数组作为函数参数(C语言)
- C++: 二维数组作函数参数
- C++: 二维数组作函数参数
- C++: 二维数组作函数参数
- C++: 二维数组作函数参数
- C++: 二维数组作函数参数
- 《C语言及程序设计》实践参考——二维数组当函数参数
- 浅谈Spring与IOC
- 本文建模系列值三:LDA感悟
- HDU 专题分类
- 30分钟入门正则表达式 学习笔记
- Common used English
- C++基础知识——二维数组做函数参数
- 第9周项目二-我的数组类
- Android获取网络图片-AsynTask异步获取 V2.0
- 基于gibbsLDA的文本分类
- INotifyPropertyChanged接口
- 渣渣写LEETCODE——258. Add Digits
- LaTeX排版Book模板
- netlink快速使用例程(linux-3.10.36)
- java集合框架详解