C++ 函数参数传递方式的常见编程技巧

2024年 4月 13日 96.5k 0

c++++ 中函数参数的传递方式包括:传递值(复制实参的值)传递引用(直接操作实参的值)传递指针(直接访问实参的地址)传递 const 引用(读取实参的值,但不能修改)

C++ 函数参数传递方式的常见编程技巧

C++ 函数参数传递方式的常见编程技巧

在 C++ 中,函数参数可以通过四种方式传递:传递值、传递引用、传递指针以及传递 const 引用。对于不同的需求,有不同的传递方式更合适。

传递值(Call by Value)

传递值是最简单和最直接的方式,即在函数内部复制实参的值。优点是避免了对实参的更改影响到实参本身的值。示例:

void increment(int num) {
  num++;  // 只能更改 num 的局部副本
}

int main() {
  int x = 5;
  increment(x);  // x 的副本被传递给 increment()
  cout << x;  // 输出 5,x 不会改变
}

传递引用(Call by Reference)

传递引用可以让函数内部直接操作实参的值。优点是避免了值的传递过程,提高了效率。示例:

void increment(int& num) {
  num++;  // 直接更改实参的值
}

int main() {
  int x = 5;
  increment(x);  // x 的引用被传递给 increment()
  cout << x;  // 输出 6
}

传递指针(Call by Pointer)

传递指针可以让函数内部直接访问实参的地址。优点是能对指针指向的内容进行更灵活的操作。示例:

void swap(int* a, int* b) {
  int temp = *a;
  *a = *b;
  *b = temp;
}

int main() {
  int x = 5, y = 7;
  swap(&x, &y);  // 传递 x 和 y 的地址
  cout << x << " " << y;  // 输出 7 5
}

传递 const 引用(Call by const Reference)

传递 const 引用和传递引用类似,但函数不能修改实参的值。优点是避免了意外的修改,提高了代码安全性。示例:

void print(const int& num) {
  cout << num;  // 只读访问实参
}

int main() {
  int x = 5;
  print(x);  // x 的 const 引用被传递给 print()
}

实战案例

在计算圆的面积时,函数的参数可以是圆的半径。为了避免传递值带来的额外开销,可以选择传递引用的方式,让函数直接操作半径的值。

#include 

double calculateArea(double& radius) {
  return M_PI * radius * radius;
}

int main() {
  double radius;
  cout <> radius;
  cout << "The area of the circle is: " << calculateArea(radius) << endl;
}

以上就是C++ 函数参数传递方式的常见编程技巧的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论