#include"stdio.h"
int main()
{ int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if(aprintf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1, *p2);
return 0;
}
上这个可以这么写吗?不行的话 为什么呢?
#include"stdio.h"
int main()
{ int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if(aprintf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1, *p2);
return 0;
}
上面那个a和b是没有变化的,只是p1和p2交换了指向地址而已。因为你只是进行指针交换,没有进行指针指向的内容交换
下面也一样,只是交换指针的指向地址而已
可以,代码没有问题,可以实现互换的,只是a,b的值并未互换,只是指针互换了!