21xrx.com
2024-11-05 16:42:47 Tuesday
登录
文章检索 我的文章 写文章
C++中如何实现参数的传递和带回?
2023-07-04 18:40:30 深夜i     --     --
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

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

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复