二维数组作为函数参数

在c语言或者c++中是不支持在定义时使用变量的(不考虑新特性)。

对于二维数组的定义方式: 

int a[][5] = {1,2,3};  int a[1][2] = {1,2,3};

是可以省略行号不仅可以省略列号的,因为省略行号编译器可以自己得到对应的行列,都省略的话编译器是不知道的。

函数传参数时,就相当于定义变量,所以也类似:

#include <iostream>
#include <Windows.h>

/*版本1: 二维数组的行数和列数都指明*/
void test(int a[3][4])
{


}

/*版本2: 二维数组的函数可以省略(但是只能省略行数),然后传入一个行数*/
void test1(int a[][4], int row)
{

}

int main(void)
{
	int a[3][4] = { 0 };
	
	test(a);

	test(a, 3);

	system("pause");

	return 0;
}

二维数组作为函数参数进行传递的时候有三种方式 

1)void func(int *a,int row,int col);  --  建议使用  // 直接以对应类型的指针传递,这种不能使用两个下标运算符访问数据

注意: 这样我们在调用函数的时候,第一个参数应该传递的是二维数组第一个数据的地址,而不是二维数组名。

int  arr[5][5];                // 假设此处定义的是二维数组。

func(&arr[0][0],5,5);    // 调用函数,第一个参数必须这样传递,因为我们这样操作完全是利用二维数组空间连续的性质。

2)  void func(int *a[10],int row);

3) void func(int a[] [10],int row);

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值