void function1(){void function2(int *a, int n); //函数声明int a[2]={1,2};function2(a,2); //调用函数}void function2(int *a, int n) //函数定义,这样就可以了{ int c,i;for(i=0;i<n;i++){c=a[i];printf("%d ",c);}} ...
`int main() { int array[2][3] = {{1, 2, 3}, {4, 5, 6}}; printArray((int *)array, 2, 3); return 0; } 三、总结 传递二维数组到函数时,可以传递指针,数组指针或使用二级指针。每种方法都有其适用场景。重要的是要确保函数知道如何正确解释传入的指针,包括数组的行数和列数。
c的数组不带长度信息,这个b只是个地址,也就是个int *,它值等于a的地址。sizeof(int *) / sizeof(int),所以结果是1 要想取得数组长度是取得不了了,多带一个参数length吧
(首地址传递后只能看到第一个元素)如图所示 一个字符串数组想要传到函数里处理。传递当时func(char (*a)[2]) 实参传了一个b[][2]的数组。结果只能看到第一个字符串即b[0]。 做了实验发现是形参的第二维的长度设置大一些就能拿到b全部内容。比如func(char (*a)[50])。这样只要b传入的行数不超过25行,...