首页 > 编程语言 > 详细

二维数组传递参数

时间:2015-11-05 00:46:50      阅读:283      评论:0      收藏:0      [点我收藏+]

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

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

        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;

}


二维数组传递参数

原文:http://10743407.blog.51cto.com/10733407/1709823

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!