void fun(int *a,int *b)
{
int k;
k=*a;
*a=*b;
*b=k;}
void main()
{
int a=2012, b=1,*x=&a,*y=&b;
fun(x,y);
printf("%d %d",a,b);
}
void fun(int a,int b)
{
int k;
k=a;
a=b;
b=k;}
void main()
{
int a=2012, b=1;
fun(a,b);
printf("%d %d",a,b);
}
这是一个新手关怀问答题。
实参和形参的区别。
*这个是指针,&这个是引用。指针和引用的传递都不会创建变量副本,子函数里的变量跟你主函数的变量都是同一块内存地址。
第二个里面传递的是形参,子函数会创建变量副本,跟你主函数的变量都不是同一个东西。子函数结束后,形参的生命周期就结束了。