参数传递二维数组
2015-08-04 15:27
246 查看
http://blog.csdn.net/yunyun1886358/article/details/5659851
数组名作为形参
[cpp] view
plaincopy
void func1(int iArray[][10])
{
}
int main()
{
int array[10][10];
func1(array);
}
编译通过,注意形参声明一定要给出第二个维度的大小,要不编译不过。
一维数组指针作为形参
[cpp] view
plaincopy
void func2(int (*pArray)[10])
{
}
void func2_1(int (*pArray)[]) //编译通过,无法调用
{
}
int main()
{
int array[10][10];
func2(array);
}
其实二维数组名就是一个指向一维数组的指针,所以这种声明方式OK。必须指定一维数组的长度,如果没有指定的话,函数声明编译通过。但是如果一旦有调用代码,就有编译不通过,因为没有实参类型能匹配int[].
二维数组引用作为形参
[cpp] view
plaincopy
void func3(int (&pArray)[10][10])
{
}
int main()
{
int array[10][10];
func3(array);
}
必须指定两个维度的长度。
二维数组指针作为形参
[cpp] view
plaincopy
void func4(int (*pArray)[10][10])
{
}
int main()
{
int array[10][10];
func4(&array);
}
必须指定两个维度的长度。
以上方法都可以等价使用,对数组来说,没有值传递。
数组名作为形参
[cpp] view
plaincopy
void func1(int iArray[][10])
{
}
int main()
{
int array[10][10];
func1(array);
}
编译通过,注意形参声明一定要给出第二个维度的大小,要不编译不过。
一维数组指针作为形参
[cpp] view
plaincopy
void func2(int (*pArray)[10])
{
}
void func2_1(int (*pArray)[]) //编译通过,无法调用
{
}
int main()
{
int array[10][10];
func2(array);
}
其实二维数组名就是一个指向一维数组的指针,所以这种声明方式OK。必须指定一维数组的长度,如果没有指定的话,函数声明编译通过。但是如果一旦有调用代码,就有编译不通过,因为没有实参类型能匹配int[].
二维数组引用作为形参
[cpp] view
plaincopy
void func3(int (&pArray)[10][10])
{
}
int main()
{
int array[10][10];
func3(array);
}
必须指定两个维度的长度。
二维数组指针作为形参
[cpp] view
plaincopy
void func4(int (*pArray)[10][10])
{
}
int main()
{
int array[10][10];
func4(&array);
}
必须指定两个维度的长度。
以上方法都可以等价使用,对数组来说,没有值传递。
相关文章推荐
- 要找谁来经营你的中国事业?
- 使用MMC管理windows机器
- 利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
- hdu 1698 线段树 区间更新
- 使用 Jtest:一款优秀的 Java 代码优化和测试工具
- iOS编程-XCode Debug忽略SIGPIPE信号
- 杂谈_如何让VS2013开发的MFC程序运行在XP系统下
- 图片上添加文字
- 单buffer,双buffer和三buffer的区别
- 博客免责声明
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- Android 基础 笔记
- BootStrap 管理系统框架选择
- XCode6.3编写swift+OC引入含C++的库时的问题
- 让页面底部固定
- hdu1754 单点更新
- leetcode Factorial Trailing Zeroes非负整数阶乘后尾0个数
- WordPress主题 Music Pro 高级音乐/电台自适应主题[更新至v1.0]
- android studio 工具
- 极光推送Jpush功能(具体参照官网说明文档,注意此文红色字体)