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

来源:互联网 发布:生成二维码的软件 编辑:程序博客网 时间:2024/06/06 00:50

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);

}

 



原创粉丝点击