二级数组传递参数时,不能以一个二级指针的方式,以二级指针的方式只传递了这个二级数组的首地址,但没有带出这个二维数组各元素的地址,编译器不能通过二级指针的移动寻找其元素。对于二级数组要用数组指针的形式传参
二维数组或是跟多维数组无法在C语言中做一般形式的参数。所以你就无法向函数传递一个普通的多维数组,可以向函数传递事先确定的长度的数组,但这个方法并不能满足一般情况,最显而易见的方法是声明一个像下面这样的原型:
方法1:my_function(int my_arry[10][20]);
方法2:my_function(int (* my_arry)[20]) 或是 my_function(int my_arry[][20]);
如果要以二级指针的形式传参,可以在定义为字符串指针数组的形式
方法3:
可以采用放弃二维数组,把他的结构改为一个Iliffe向量,也就是说创建一个一位数组,数组中的元素师窒息那个其他东西的指针,
回想一下main() 函数中经常看到 char* arg[]; 但是有时我们也能看到 char**argv.这样的形式,他能提醒我们怎样分析这个声明,
可以简单的传递一个指向数组参数的第一个元素的指针 如下所示:
my_function(char **argv)
注意只有把二维数组改为一个指向向量的指针数组的前提下才可以这样做!