include <stdio.h>
void main()
{
void swap(int x,int *y);
int a=5,b=10;
swap(a,&b);
printf("%d,%d\n",a,b);
}
void swap(int x,int *y)
{
int t;
t=x;
x=*y;
*y=t;
}
运行结果5,5
如果a=8其他不变 结果是8,8
swap这个函数作用是把a,b互换的意思吧?
不解
因为 a 作为形参实际上传的是 a 的拷贝,而不是 a ,所以函数里面对 a 的改变对外边的 a 都没有影响,所以 a 没变;而 b 传进去时候用了指针,所有对那个指针的改变都会映射到 b 上面,所以最终结果 b 改变了。
形参里的数据不会变的