函数传参:引用类型 vs 指针类型

f (int &a) 引用类型   引用传递

f (int *a) 指针类型 (int *指向int型变量的指针类型)值传递


在函数里面改变函数外面变量的值

1:void f(int &a) {

a=4;

return;

}

主函数中:int x=0;

    f(x);

结果 x=4


2:void f(int *a) {

*a=4;

return;

}

主函数中:int x=0;

    f(&x);

结果 x=4

int a=100:a代表4字节存储空间

int &b=a: b和a一样代表4字节存储空间 =》1里,调用后 a和x 代表同一块地址空间

int *c=&a:c代表另一个存储空间,存放的值是a的存储空间的首地址 =》2里,调用后 a的值是x的存储空间的首地址


 

3. 传指针,并修改指针的值

char a[5]="aaaa";

void f(char **p) {

    *p = a;

}

主函数中:

int main() {

    char *p;

    f(&p);

    printf("%s", p);

}

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值