#include <stdio.h>
//函数的传参方式之地址传参:将实参的地址传递给形参,
//形参对保存的地址的内容进行任何操作,实参的值也会跟着改变
void fun(int*p,int*q)
{
int temp;
temp = *p;
*p=*q ;
*q = temp;
printf("in fun *p = %d *q = %d\n",*p,*q);
printf("p = %p,q = %p\n",p,q);
}
int main()
{
int a = 100, b = 50;
printf("before fun a = %d b = %d\n",a,b);
printf("&a = %p,&b = %p\n",&a,&b);
fun(&a,&b);//将实参a,b的地址传给形参(p,q)
printf("after fun a = %d,b = %d\n",a,b);
return 0;
}
注意:如果实参是一个普通变量,那么地址传参的形参就需要是一个一级指针;
如果实参是一个一级指针,那么地址传参的形参就需要是一个二级指针;
以此类推。