用int (*s)[10]处理函数中的元素
程序代码:
#include <stdio.h> main() { int fun(int (*s)[10],int *b,int *n,int mm,int nn); int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}; int a[100],i,j,n=0; printf("array a:\n"); for(i=0;i<3;i++) {for(j=0;j<4;j++) printf("%d ",w[i][j]); printf("\n"); } fun(w,a,&n,3,4); printf("array b:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); } int fun(int (*s)[10],int *b,int *n,int mm,int nn) { }将一个3行4列的二维数组存放在一个一维数组中依次输出。如上
33 33 33 33
44 44 44 44
55 55 55 55
变成:33 33 33 33 44 44 44 44 55 55 55 55输出。
而且要把在一维数组中所存数的个数存放在变量n的单元中。
这个 int (*s)[10] 能不能具体给解释一下。实参w数组的数组名传给形参(*s)[10],如果在fun中i=0,那么形参(*s)[10]加1,是不是指向w中第零行第一列元素?
如何用那个形参把w数组中的元素表示出来?求解。这个算法我会,就是表示元素,把我搞晕了。