C语言函数的引用传递、指针传递、值传递

1、代码

#include <stdio.h>

struct Person{
    int a;
    double b;
};

/*引用传递*/
void AliasFun(struct Person& person)
{
    person.a = 100;
    person.b = 100.1;
}
/*指针传递*/
void PointFun(struct Person* person)
{
    person->a = 200;
    person->b = 200.1;
}
/*值传递*/
void ValueFun(struct Person person)
{
    person.a = 300;
    person.b = 300.1;
}

int main(int argc, char* argv[])
{
    struct Person person;
    AliasFun(person);
    PointFun(&person);
    ValueFun(person);
    printf("%d %f
", person.a, person.b);//200 200.100000
    return 0;
}

2、值传递

向函数传递的是临时变量,在函数内部修改值不会影响外部参数的取值

3、引用传递

入参为Type&,这里的&代表数据类型是一个引用,传入的是参数本身,内部通过点号去访问

4、指针传递

入参是Type*,指针类型,既然是指针则使用时传入地址,及&person,函数内部通过->访问




长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html
原文地址:https://www.cnblogs.com/judes/p/15017986.html