21xrx.com
2025-04-01 19:08:43 Tuesday
文章检索 我的文章 写文章
C++中如何实现参数的传递和带回?
2023-07-04 18:40:30 深夜i     10     0
C++ 参数传递 参数带回

在C++中,函数的参数传递包括值传递、引用传递和指针传递三种方式,而参数的带回则是指函数返回值或引用参数。

值传递是指将参数的值复制一份并传递给函数,函数内部对该参数的修改不会影响原来的实参。例如:

void func(int a)
  a = 100;
  cout << "a=" << a << endl;
int main()
{
  int b = 10;
  func(b);
  cout << "b=" << b << endl;
  return 0;
}

输出结果为:

a=100
b=10

可以看出,func函数内部通过值传递修改了a的值,但并没有影响到main函数中的b。

引用传递是指将参数的引用传递给函数,函数内部对该引用的操作会直接影响到原来的实参。例如:

void func(int& a)
  a = 100;
  cout << "a=" << a << endl;
int main()
{
  int b = 10;
  func(b);
  cout << "b=" << b << endl;
  return 0;
}

输出结果为:

a=100
b=100

可以看出,func函数内部修改了a的值,同时也影响了main函数中的b。

指针传递与引用传递类似,但是需要注意指针的空指针问题。例如:

void func(int* p)
{
  *p = 100;
  cout << "*p=" << *p << endl;
}
int main()
{
  int b = 10;
  func(&b);
  cout << "b=" << b << endl;
  return 0;
}

输出结果为:

*p=100
b=100

函数的返回值也可以实现参数的带回,例如:

int func(int a)
  a = 100;
  return a;
int main()
{
  int b = 10;
  b = func(b);
  cout << "b=" << b << endl;
  return 0;
}

输出结果为:

b=100

可以看出,通过函数的返回值将修改后的参数带回了主函数。

另外一种实现参数的带回方式是引用参数,例如:

void func(int& a)
  a = 100;
int main()
{
  int b = 10;
  func(b);
  cout << "b=" << b << endl;
  return 0;
}

输出结果为:

b=100

通过引用参数将修改后的参数带回了主函数。

需要注意的是,引用参数要求传递的参数是一个变量,而不是常量或表达式,因为常量和表达式无法取地址。此外,在使用指针传递参数时也要注意指针的空指针问题。

  
  

评论区

请求出错了