我不明白下面给出的这个函数是按引用还是值? 它的工作方式类似于参考电话。但我想知道我是不是传递任何地址或指针然后为什么值在主要变化? 其次,我想知道如何编写函数如果我想在函数内部对数组进行的更改不应该反映main? (我在gcc上编写了这段代码)
void assign(int n, int m, double a[n][m])
{
int i, j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=i*10;
}
void main(void)
{
int i,j,m,n;
m=5;n=10;
double a[n][m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=i*100;
assign(n,m,a);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%f ",a[i][j]);
printf("\n");
}
}