求帮忙看看我的指针问题
#include<stdio.h>int main()
{void swap(int *p1,int *p2);
......这里我就不打了。
}
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;}
为什么执行了这个函数,回归后,使实参的值也改变了(我自己的理解是这里是改变了实参的地址符,不知对不对)
而这个
void swap(int *p1,int *p2)
{
int *p;
p=p1;
p=p2;
p2=p
}
如果用这个的话,则改变不了实参,(我自己的理解就是这里只是实现了值互换,而形参的值不能传递给实参,返回的也是地址符,只是地址符没改变。)我不知道这样理解对不对啊,求大神赐教。
[ 本帖最后由 xz842266736 于 2014-5-31 08:44 编辑 ]