1、多维数组作为函数参数的传递,制作人:陈燕学号:1610003038班级:计科专升本2班,多维数组,概念多维数组,每个元素由值及多个能确定元素位置的下标组成,按数组的多个下标变化次序关系的描述,可以确定数组元素的前驱和后继关系并写出对应的线性表多维数组也可以由元素为(n一1)维数组的特殊线性表来定义,这样维数大于一的多维数组是由线性表结构辗转合成得到的,是线性表的推广。,多维数组作为函数参数的方式,函数参数中一维数组的长度会被忽略的,但二维数组的第二维度就会被要求指定长度(否则gcc会报告“数组元素的类型不完全”)。 同理,三维数组就会被要求指定第二维度和第三维度的长度,所以n维数组只有第一维度
2、的长度会被忽略。那么对于C+而言,如何将多维数组作为参数向函数中进行传递呢?,多维数组,多维数组操作方法:对于数组,通常只有两种操作:(1)给定一组下标,存取相应的数据元素;(2)给定一组下标,修改相应数据元素中的某一个或某几个数据项的值。,C+中如何把多维数组作为参数?,C+中如何把多维数组作为参数,该如何写原函数(函数头,函数体)、怎样调用、怎样设计函数?void function(int a,.) .main() int a; funtion(a,.);/调用,在函数体内对a操作,就可以改变a,多维数组,表示方法 多维数组可以说是数组的嵌套,由于C+中不能对数组进行引用(不知道为什么),
3、故而传递多维数组的办法都在指针上打主意。 直接传递元素个数也不妥当,只能处理固定元素个数的数组,应用场合十分受限。 不能每维都不传递元素个数,语法规则不允许,多维数组,表示方法:关于多维数组,其实可以解释为“数组的数组”。比如 int hoge32 ;可以解释为 int 的数组(元素个数2)的 数组(元素个数3)因此我们可采用与一维数组类似的方式向函数传递参数。(只不过这儿不是“指向int 的指针”,而是指向“int数组(元素个数为2)的指针” int (*hoge)2)也就是说,接收这个参数的函数的原型为:void func( int (*hoge)2 );当然:void func( int hoge32 ) ;void func( int hoge 2 ) ;这两种传递方式也是正确的。,