代码:有一个4*4的矩阵,设计函数计算矩阵主对角元素之和,将和存放在数组第一个元素,返回主函数之后输出这个和
#include
#include
void ArraySum(int nArray[][4],int n)
{
int i,sum =0;
for(i=0;i<=n;i++)
sum +=nArray[i][i];
nArray[0][0]=sum;
}
main()
{
int nArray[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
ArraySum(nArray,4);
printf("%d",nArray[0][0]);
}
问题:我想知道这个主函数是没有返回值的,是个void,函数运行结束里面的值全部消失,请问这个函数是如何做到返回和的
数组作为函数参数是对原数组进行操作,函数最后把sum赋给了narry[0][0],修改了原始值。
这是将结果写入了nArr[0][0]
以破坏数组数据为代价,进行返回的。