|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include"stdio.h"
void downf(int *m,int *n)
{
int j;
j=*m;*m=*n;*n=j;
}
main()
{int a=10,b=20,*p,*q;
p=&a,q=&b;
printf("%d %d %x %x\n",*p,*q,p,q);
if(a<b)
downf(&p,&q);
printf("%d %d %x %x",*p,*q,p,q);
getch();
}
该程序运行结果,为什么p,q的地址也会交换,子函数不是只交换了值吗?
然后下面的程序为什么是错误的?难道子函数中交换好的地址 又变回去了?
#include"stdio.h"
void downf(int *m,int *n)
{
int *j;
j=m;m=n;n=j;
}
main()
{int a=10,b=20,*p,*q;
p=&a,q=&b;
printf("%d %d %x %x\n",*p,*q,p,q);
if(a<b)
downf(&p,&q);
printf("%d %d %x %x",*p,*q,p,q);
getch();
} |
|