一道指针变量作函数参数的问题
玄太鹤 2009-11-26 01:58:52 swap( int* p1,int* p2 )
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf("%d,%d",&a,&b);
pointer_1=*a;pointer_2=&b;
if(a<b)swap(pointer_1,pointer_2);
printf("\n%d,%d\n",a,b);
}
这是谭浩强那本书上的例子,里面有句话是函数调用结束后,p1和p2不复存在(已释放),那么我想问一下为什么a,b的值还能改变呢?a,b的值是在执行swap函数时候交换的,书上也只说实参和形参是值传递并且单向传递那么我为什么a,b的值还能改变并且用到主函数里使a和b的值改变?
能说的详细点吗?或者是举个形象的例子。谢谢!~~