在函数中,int与int&的区别

int&:传引用

// passing parameters by reference
#include <iostream>
using namespace std;

void duplicate (int& a, int& b, int& c)
{
  a*=2;
  b*=2;
  c*=2;
}

int main ()
{
  int x=1, y=3, z=7;
  duplicate (x, y, z);
  cout << "x=" << x << ", y=" << y << ", z=" << z;
  return 0;
}
输出
x=2, y=6, z=14

int& a可以理解为:因为&为取地址符号,所以a为一个值。

int* a可以理解为:因为*为取值符号,所以a为一个地址。

传引用,通过引用也是可以直接访问到实参和控制实参的,所以实际更改了x,y,z的值。

int :传参数

#include <iostream>
using namespace std;

void duplicate (int a, int b, int c)
{
    a*=2;
    b*=2;
    c*=2;
}

int main ()
{
    int x=1, y=3, z=7;
    duplicate (x, y, z);
    cout << "x=" << x << ", y=" << y << ", z=" << z;
    return 0;
}
输出
x=1, y=3, z=7

相当于把x=1,y=3,z=7这几个值复制一份传给函数,实际上并没有更改x,y,z的值。

最后更新于

这有帮助吗?