二维数组传递参数

    先开始写这个小程序的时候我直接传递的是一个二维指针,然后发现编译跟链接都没有问题,但是运行的时候报了内存错误,经过查询才知道二维数组传参不能直接用二维指针定义

    二维数组传递参数一般有三种方法

        1.直接传递二维数组如“int a[][10]”(必须标注数组第二维的值)。

        2.二维数组第一维用指针代替“int (*a)[3]”。

        3.直接传递过去一个一维指针,然后进行强制类型转换“int* a”。

(毕竟是小白,解释不清楚为什么,有什么不对的希望大神指正)

例如:二维数组中的查找,杨氏矩阵

题目:

在一个二维数组中,每行都按照从左到右的递增的顺序排序。每列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个数组和一个数,判断数组中是否包含这个数。

例如:

二维数组

1 2 3

4 5 6

7 8 9

查找数字7.

代码语言如下

int search1_int(int *arr[3], int num)
{
	int high = 3;
	int wide = 3;
	for (int i = 0; i < high; i++)
	{
		for (int j = 0; j < wide; j++)
		{
			if (arr[i][j] == num)
				return 1;

		}
	}
	return 0;

}
int main()
{
	int arr[][3] = 
	{ 
		{1,2,3},
		{4,5,6}, 
		{7,8,9} 
	};
	int high=sizeof(arr) / sizeof(arr[0]);
    int wide=sizeof(arr) / high;
	printf("%d\n", search1_int(arr, 7));
	system("pause");
	return 0;

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值