主函数调用到子函数,他的形式参数或者实际参数有指针变量

我感觉很复杂,因为普通的变量我很容易看,多个指针感觉要很多的思考

https://mp.weixin.qq.com/s?src=11×tamp=1640945524&ver=3530&signature=yqQrgmmAHuR6oYAkSka*uwr4SIVZUEYnR-PKsMsGcs9MaMy5ahNqi1vadnIVz-uT2oYXAjawlNNbQ3cxunJwpeOpocwyfolNg7JqOij-Lm62ES9X9UN44RCTqFRUo0nf&new=1
这个是关于引用的,有帮助的话采纳一下哦!

不想用指针的话,看一下引用&,🙊🙊🙊


//传入int*类型,函数内部可以修改a指向变量的值
void func1(int* a) {
    *a = 1;
}
//传入int&类型,函数内部可以修改a的值
void func2(int& a)
{
    a = 1;
}
//传入const int*类型,函数内部只能使用a指向变量的值,而不能修改
void func3(const int* a)
{
    //报错,
    //*a = 1;
    //使用a指向的对象
}
//传入const int& 类型,函数内部只能使用a的值,而不能修改a
//等价与func3
void func5(const int& a){}

//等价与func3,只是当func3的输入类型为比较大的数据结构时,效率比func4高
int func4(int a){}

//大数据结构,当做为参数时,需要尽量减少copy
struct BigData
{
    int data[1000000];
};

//下面两个函数都可以传入BigData,并且效率比较高,不会造成大内存的copy
void func6(const BigData& a){}
void func7(const BigData* a){}
//func8调用一次就会造成BigData copy一次,效率比较低
void func8(BigData a){}