#include<stdio.h>
int main()
{
void sum_(int(*p)[10],int m,int n);
int m,n; int i,j; int a[10][10] ;
scanf("%d,%d",&m,&n) ;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]) ;
}
int (*p)[n] ;
p=a;
sum_(a,m,n) ;
}
void sum_(int(*p)[10],int m,int n)
{
int i,j,sum=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
sum=sum+*(*(p+i)+j);
}
printf("sum=%d",sum) ;
}正确答案
#include<stdio.h>
int main()
{
void sum(int(*p)[n],int m,int n);
int m,n; int i,j; int a[m][n] ;
scanf("%d,%d",&m,&n) ;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",a[i][j]) ;
}
int (*p)[n] ;
p=a;
sum(a,m,n) ;
}
void sum(int(*p)[n],int m,int n)
{
int i,j,sum=0;
for(i=0;i<m;i++)
{.
for(j=0;j<n;j++)
sum=sum+*(*(p+i)+j);
}
printf("sum=%d",sum) ;
}错误的因为形参中指向一维数组的元素个数必须是常量
若实际指向的一维数组元素少于形参中常量的个数并不影响。