新手的困惑,请大侠指点!!!多谢!!!
我想不交换a,b只交换他们的地址变量,输出结果和我预期的不一样swap(int *p1,int *p2)
{int *temp;
temp=p1;p1=p2;p2=temp;
}
main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf("%d,%d",&a,&b);
pointer_1=&a,pointer_2=&b;
if(a<b) swap(pointer_1,pointer_2);
printf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n\n",*pointer_1,*pointer_2);
}
如输入1,3
输出就是 a=1,b=3
max=1,min=3
不知道错在哪里?请指教!!!!
如下面的函数就可以实现,请问两个函数区别在哪里?
main()
{
int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if(a<b)
{p=p1;p1=p2;p2=p;}
printf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n\n",*p1,*p2);
}
如输入1,3
输出 a=1,b=3
max=3,min=1;
初学指针,请多多指教!!!