频道栏目
首页 > 资讯 > 其他 > 正文

二维数组传递参数

15-11-05        来源:[db:作者]  
收藏   我要投稿
先开始写这个小程序的时候我直接传递的是一个二维指针,然后发现编译跟链接都没有问题,但是运行的时候报了内存错误,经过查询才知道二维数组传参不能直接用二维指针定义
    二维数组传递参数一般有三种方法
        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;

}

 

 
 
相关TAG标签
上一篇:不必更新病毒库 病毒难逃新一代杀软“火眼金睛”
下一篇:信贷员必看:你用对了微信营销的新型展业方式吗?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站