我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:刘伯温论坛 > 二元关系 >

c语言中怎么用二维数组作为函数参数

归档日期:07-16       文本归类:二元关系      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:

  二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的:

  因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多 少列,不能只指定一维而不指定第二维,下面写法是错误的:

  在转变后的函数中,array[i][j]这样的式子是不对的(不信,大家可以试一下),因为编译器不能正确的为它寻址,所以我们需要模仿编译器的行为把array[i][j]这样的式子手工转变为:

  根据不同编译器不同的设置,可能出现warning 或者error,可以进行强制转换如下调用:

  其实多维数组和二维数组原理是一样的,大家可以自己扩充的多维数组,这里不再赘述。写到这里,我先向看了这篇文章后悔的人道歉,浪费你的时间了。下面是一 个完整的例子程序,这个例子程序的主要功能是求一个图中某个顶点到其他顶点的最短路经,图是以邻接矩阵的形式存放的(也就是一个二维数组),其实这个函数 也是挺有用的,但是我们这篇文章的重点在于将二维数组作为函数的参数传递。

  展开全部很简单的,数组作为函数参数传递的时候只要是数组名就可以了,因为数组名本身就是数组的首地址 .给个程序看看

  二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中对形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如:

  因为从实参传递来的是数组的起始地址,如果在形参中不说明列数,编译器将无法定位元素的的位置。

  直接就写数组的名称就可以了,比如你定义的数组是a[4][3],在实参中填a就可以,在型参中定义一个二维数组或一个指针变量就可以让二维数组的值在函数中使用了!

本文链接:http://19721112.com/eryuanguanxi/759.html