C++中函数参数传递的三种类型--传值-传指针-传引用

C++中增加了引用这种类型,主要是把引用作为函数参数, 来扩展函数传递数据的功能

 总结下来,C++中函数传参数有以下3种方式:

1.  将变量名作为实参和形参. 这时传给形参的是变量的值, 传递是单向的. 

     如果传递进函数中的这个参数, 它在函数中对它的值进行了变更. 显然,它并不会影响函数外面,传递进函数之前它的值.

void Method(int x, int y)  //形参是变量的值,不是变量本身
{
     x  += 5;
      y += 10;

}

//函数调用时
int a = 9, b = 10;
Method(9,10); //这个函数执行完后,并不会改变函数外面变量a和b的值

 

2.  传递变量的指针

     如果传递的是变量的指针(定义函数时,函数的形参是指针), 由于指针指向一个变量的地址, 所以在实际调用这个函数时,它应该传入的是变量的地址

     这个时候,你在函数内部去改变这个指针指向的变量的值,显然,在函数外面它的值也会跟着变化

     

void Method1(int *x, int *y)  //形参是变量的指针
{
     *x  += 5;
      *y += 10;

}

//函数调用时
int a = 9, b = 10;
Method1(&a,&b); //实参传入的应该是变量的地址   => 调用完成后,函数外面a,b的值都会发生变化

3. C++中还提供了一种,传递变量的引用

    形参是变量的引用,我们知道在C++里面,引用相当于变量的别名, 就等同于变量本身. 所以实参实际就是变量本身. 

    所以,你在函数内部改变实惨的值,函数外面它的值也会跟着变化

    

void Method2(int &x, int &y) // 形参是引用类型
{       
        x += 5;
        y += 10;      
}


//函数调用时
int x =1, y = 2;
Method2(1,2);  //实惨传递的就是变量x,y本身,所以函数内部对参数值的改变,会影响函数外部x,y的值

 

posted on 2023-04-21 11:02  新西兰程序员  阅读(145)  评论(0编辑  收藏  举报