有关指针变量作为函数参数的问题求解
有两个程序,同样是以指针变量作参数,为什么结果会不一样?第一个程序
#include <stdio.h>
void main()
{
void change(int *p1,int *p2);
int a,b;
int *point_a,*point_b;
scanf("%d,%d",&a,&b);
printf("%d,%d\n",a,b);
point_a=&a;
point_b=&b;
change(point_a,point_b);
printf("%d,%d\n",*point_a,*point_b);
getch();
}
void change(int *p1,int *p2)
{
int *temp;
temp=NULL;
temp=p1;
p1=p2;
p2=temp;
}
输入:4,5
输出:4,5
4,5
第二个程序
#include <stdio.h>
void main()
{
void change(int *p1,int *p2);
int a,b;
int *point_a,*point_b;
scanf("%d,%d",&a,&b);
printf("%d,%d\n",a,b);
point_a=&a;
point_b=&b;
change(point_a,point_b);
printf("%d,%d\n",*point_a,*point_b);
getch();
}
void change(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
输入:4,5
输出:4,5
5,4