#include <stdio.h>
void swap(int *a,int *b)
{
printf("address in swap():%p %p\n",a,b);
int temp=*a;
*a=*b;
*b=temp;
}
int main()
{
int a=4,b=5;
printf("address in main():%p %p\n",&a,&b);
swap(&a,&b);
printf("a = %d ,b = %d\n",a,b);
return 0;
}
函数的传递实质是形参值对实参值的拷贝。(形参需要重新定义及分配内存)
swap()函数:对拷贝的地址指向值进行赋值,函数内通过对地址的指向值,内存的操作,操作函数外的值。
更简单的方法为引用&,直接对函数外的值进行操作,方便易懂。