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\n", person.a, person.b);//200 200.100000
    return 0;
}

2、值傳遞

向函數傳遞的是臨時變量,在函數內部修改值不會影響外部參數的取值

 

3、引用傳遞

入參為Type&,這里的&代表數據類型是一個引用,傳入的是參數本身,內部通過點號去訪問

 

4、指針傳遞

入參是Type*,指針類型,既然是指針則使用時傳入地址,及&person,函數內部通過->訪問


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM