[求助]指针问题
#include <iostream.h>void swap(int *p1,int *p2)
{
int *p;
p=p1;
p1=p2;
p2=p;
}
void main ()
{
int x=20,y=10;
swap(&x,&y) ;
cout<<x<<","<<y;
}
输出的结果为什么是20,10呀?怎么不是10,20呀?
#include <iostream.h>
void swap(int *p1,int *p2)
{
int *p=new int ;
*p=*p1;
*p1=*p2;
*p2=*p;
}
void main ()
{
int x=20,y=10;
swap(&x,&y) ;
cout<<x<<","<<y;
}
或者这样写也可以的
#include <iostream.h>
void swap(int *p1,int *p2)
{
int *p=new int ;
p=p1;
p1=p2;
p2=p;
cout<<p1<<","<<p2<<endl;
}
void main ()
{
int x=20,y=10;
swap(&x,&y) ;
}
因为你那个程序交换的只是两个指针指向的位置,而不是x,和y的值,要想交换值就用*p代替p
[此贴子已经被作者于2007-10-6 17:48:21编辑过]