#include <stdio.h>int array_add(int arr[],int n);void main(){int a[3][3]={2,4,6,1,3,5,7,8,9};int *p,sum;p=a[0];sum=array_add(p,9);printf("The sum of array is %d",sum);}int array_add(int arr[],int n){int k,sum=0;for(k=0;k<n;k++)sum=sum+arr[k];return(sum);}小弟有几个问题不解,希望高手解答,尽量详细点主调函数中要求二维数组的所有元素之和,实参是一个指向二维数组首地址的指针,但是形参是一个一维数组,从被调函数中的求和公式可以看出,这是一维数组的求和公式,若将a[3][3]的首地址传递给形参arr[],则arr[0]也指向数组a[3][3]的首地址的指针,并不是一个元素,怎么相加,arr[1]和arr[2] 分别是指向第二行和第三行的首地址的指针,不明白arr[k]怎么变成元素了这是教材中的例题,没错误,希望高手详细点解答,我是菜鸟,才学
1 回答

杨魅力
TA贡献1811条经验 获得超6个赞
就是遍历数组即可
没看你的
简单思路提示
#include <stdio.h>
main()
{
int a[3][3]={...};
int i,j,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
sum+=a[i][j];
}
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消