指针参数

使用指针变量作为函数参数,可以在局部函数里改变函数外部变量的值,可以更好的模块化和封装。

例子1:

#include<stdio.h>

void  swap(int a,int b){
    int temp;
    temp = a;
    a=b;
    b=temp;
}
int  main(void)
{
    int a=1,b=2;
    swap(a,b);
    printf("a=%d  b=%d \n",a,b);
    return 0;
}

此例子的目的是通过函数swap交换a,b的值,交换前,a=1,b=2

运行结果:

a=1 b=2

可以看到交换失败,原因是swap函数里面都是局部变量的交换,当函数执行完毕后,变量被回收,不会影响函数外部的值

例子2:

#include<stdio.h>

void  swap(int *a,int* b){
    int temp;
    temp = *a;
    *a=*b;
    *b=temp;
}
int  main(void)
{
    int a=1,b=2;
    swap(&a,&b);
    printf("a=%d  b=%d \n",a,b);
    return 0;
}

运行结果:

a=2 b=1

将swap函数的参数修改为指针变量后,交换结果会影响a,b的值,虽然函数执行完毕后,指针变量不存在,但是在函数内部的执行对a,b的影响是持久化的。

转载于:https://www.cnblogs.com/jason207489550/p/6665220.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值