一个关于二维数组的问题

img


在这里strs不是一个二维数组的数组名吗,传参时把strs传给形参,在接口函数声明的形参为什么是二级指针,而不是数组指针。

数组指针和二级指针在参数传递时是一样的,函数参数只知道是指针,不知道是数组,你也可以写成 char *str[]

strs不仅是一个数字名,更是这个数组的起始地址,既然是地址,就可以传进该接口函数中。
该题中strs是字符串数组,也就是说该数组中存放的其实是指针,指针的指针就是二级指针了

img

二维数组相当于每个数组元素都是一个一维数组的一个数组,所以每个数组元素都要用一级指针表示,二维数组名是二维数组的地址,所以要用二级指针接收