有关形参和实参返值的问题
先来个简单点的例子吧#include <stdio.h>
void main()
{
int a=2,b=3;
void f(int x,int y);
f(a,b);
printf("%d,%d",a,b);
}
void f(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
输出结果没变
如果是下面的程序
#include <stdio.h>
void main()
{
void f(int x[],int y[]);
int a[3]={1,2,3},b[3]={4,5,6};
int i;
f(a,b);
for(i=0;i<3;i++)
printf("%3d",a[i]);
printf("\n");
for(i=0;i<3;i++)
printf("%3d",b[i]);
}
void f(int x[],int y[])
{
int t,i;
for(i=0;i<3;i++)
{t=x[i];
x[i]=y[i];
y[i]=t;
}
}
输出结果就会将想a[]和b[]的值改变。
在我看来只是第一段程序交换了一次,第二段程序交换了三次而已。哪位高手详解下
求教为什么,在我看来