C语言函数传递指针参数

#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()函数:对拷贝的地址指向值进行赋值,函数内通过对地址的指向值,内存的操作,操作函数外的值。

更简单的方法为引用&,直接对函数外的值进行操作,方便易懂。

猜你喜欢

转载自blog.csdn.net/penghejuan2012/article/details/82625766
今日推荐