70,020
社区成员




if(*p1<*p2)
{
p3=p1;
p1=p2;
p2=p3;
}
#include<stdio.h>
void adjust1(int *p1,int *p2)//指针p1 p2作用域在本函数内,所以改变他们的值,
//并不能传回给math1 math2,所以是无效的。
{
int *p3;
if( *p1 < *p2)
{
p3 = p1;
p1 = p2;
p2 = p3;
}
}
void adjust2(int *p1,int *p2)//对指针所指向的值操作是有效的
{
int p3;
if(*p1<*p2)
{
p3 = *p1;
*p1 = *p2;
*p2 = p3;
}
}
int main()
{
int a1,a2,*math1,*math2;
math1=&a1;
math2=&a2;
scanf("%d %d",&a1,&a2);//scanf("%d%d\n",&a1,&a2);这里多了'\n'
adjust1(math1,math2);
printf("adjust1:%d %d\n",*math1,*math2);
adjust2(math1,math2);
printf("adjust2:%d %d\n",*math1,*math2);
return 0;
}