C语言这段代码(函数调用问题)在线等..急

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:31:09
#include<stdio.h>
void print_array(int a[4][4])
{
int i,j;
for (i=0;i<=3;i++)
{
for (j=0;j<=3;j++)
printf("%-5d",a[i][j]);
printf("\n");
}
printf("\n");
}

void trans_array(int a[4][4],int b[4][4])
{
int i,j,k=1;
for (i=0;i<=3;i++)
{
for (j=0;j<=3;j++)
{
b[i][j+1]=a[j][i];
}
}

}

void main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int b[4][4]={0};

print_array(a);

trans_array(a,b);

print_array(b);
}

问题是这样的:不是说函数中的值不会影响到MAIN函数里吗?可为什么我在MAIN函数再次调用print_array(b)的时候会把trans_array()函数中的b结果传到print_array函数中呢?
能否讲的更通俗一点..最好举个例子``

trans_array(a,b);
传递给该函数的是b的地址,函数根据地址进行操作,所以能修改数组b的数据

这是址传递,当然影响啦

把指针的本质弄清楚了你就明白了
指针是C语言的精华所在,不懂指针就永远是C语言的外行