为什么不能传会指针改变数值
在学C,按照自己的理解定了一个得用指针交换数的源码,便运行后不正常啊。很是奇怪啊#include "stdio.h"
#include "conio.h"
int swap(int *,int *);
main()
{
int a,b,*p1,*p2;
p1=&a,p2=&b;
printf("Enter two number:\n");
scanf("%d %d",&a,&b);
printf("(1)p1=%p a=%d p2=%p b=%d",p1,a,p2,b);
printf("\n");
swap(p1,p2);
printf("(3)p1=%p a=%d p2=%p b=%d",p1,a,p2,b);
getch();
}
int swap(int *i,int *j)
{
int *p3;
p3=i;
i=j;
j=p3;
printf("(2)p1=%p a=%d p2=%p b=%d",i,*i,j,*j);
printf("\n");
}
#include "conio.h"
int swap(int *,int *);
main()
{
int a,b,*p1,*p2;
p1=&a,p2=&b;
printf("Enter two number:\n");
scanf("%d %d",&a,&b);
printf("(1)p1=%p a=%d p2=%p b=%d",p1,a,p2,b);
printf("\n");
swap(p1,p2);
printf("(3)p1=%p a=%d p2=%p b=%d",p1,a,p2,b);
getch();
}
int swap(int *i,int *j)
{
int *p3;
p3=i;
i=j;
j=p3;
printf("(2)p1=%p a=%d p2=%p b=%d",i,*i,j,*j);
printf("\n");
}
运行结果如下:
" border="0" />
[[it] 本帖最后由 syjojg 于 2008-9-24 01:05 编辑 [/it]]