这两个程序求的a,b的值为什么不一样呢?
程序一:#include<stdio.h>
void main()
{int *p1,*p2,*p;
int a=4;
int b=6;
p1=&a;p2=&b;
if(a<b)
{p1=&b;p2=&a;)
printf("%d,&d",a,b);
printf("%d,%d",*p1,*p2);
}
程序二:
main()
{Exchg2(int *px, int *py)
int a=4;
int b=6;
int *pionter_1;int *pointer_2;
pointer_1=&a; pointer=&b;
if(a<b) Exchg2(pointer_1,pointer_2);
Print(“a=%d,b=%d\n”, a, b);
}
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d\n”,*px,*py);
程序一 a=4,b=6
程序二 a=6,b=4
问: 程序二
主调函数if(a<b) Exchg2(pointer_1,pointer_2);只是交换了两个指针变量,没有交换值,为什么a,b的值却交换了
程序一为什么没换呢?感觉两个程序是求同一个问题的。