写点什么

C++ 默认参数与引用传递:语法、用法及示例

作者:小万哥
  • 2024-04-15
    广东
  • 本文字数:1671 字

    阅读完需:约 5 分钟

C++ 默认参数与引用传递:语法、用法及示例

C++ 默认参数

默认参数概述

在 C++ 中,函数参数可以拥有默认值。这意味着,在调用函数时,如果省略了某个参数,那么将使用为该参数指定的默认值。

设置默认参数

默认参数值使用等号 = 符号进行设置,位于参数声明的类型之后。例如:


void myFunction(string country = "Norway");
复制代码


在这个例子中,country 是一个参数,它的默认值为 "Norway"。这意味着,如果在调用 myFunction 时没有显式指定 country 参数,那么函数将使用 "Norway" 作为其值。

示例:使用默认参数

以下示例展示了如何使用默认参数:


void myFunction(string country = "Norway") {  cout << country << "\n";}
int main() { myFunction("Sweden"); // 输出:Sweden myFunction("India"); // 输出:India myFunction(); // 输出:Norway myFunction("USA"); // 输出:USA return 0;}
复制代码


在该示例中,myFunction 函数有两个调用:


  • 第一次调用显式指定了参数 country"Sweden",因此输出 "Sweden"

  • 第二次调用显式指定了参数 country"India",因此输出 "India"

  • 第三次调用没有指定参数 country,因此使用默认值 "Norway",输出 "Norway"

  • 第四次调用显式指定了参数 country"USA",因此输出 "USA"

多个参数和默认参数

函数可以拥有多个参数,其中一部分或全部都可以拥有默认值。例如:


void myFunction(string fname, int age = 18) {  cout << fname << " Refsnes is " << age << " years old.\n";}
int main() { myFunction("Liam"); // 输出:Liam Refsnes is 18 years old. myFunction("Jenny", 25); // 输出:Jenny Refsnes is 25 years old. return 0;}
复制代码


在这个例子中,myFunction 函数有两个参数:fnameageage 参数拥有默认值 18,这意味着如果在调用函数时没有显式指定 age 参数,那么将使用 18 作为其值。

函数返回值和默认参数

默认参数仅适用于函数参数,不适用于函数返回值。函数的返回值类型由函数声明中的类型决定,与默认参数无关。

总结

C++ 中的默认参数是一种方便的功能,可以简化函数调用并提高代码的可读性。通过使用默认参数,您可以避免在每次调用函数时都需要显式指定所有参数,尤其是对于那些经常使用相同值的可选参数。

C++ 函数 - 引用传递

引用传递概述

在 C++ 中,函数参数可以使用引用传递的方式进行传递。引用传递是指函数直接访问函数调用者提供的变量的内存地址,而不是复制变量的值。这意味着函数可以直接修改调用者变量的值,而无需创建副本。


引用传递通常用于以下两种情况:


  • 需要在函数中修改调用者变量的值

  • 需要在函数中传递大型数据结构,例如数组或对象,以避免复制数据的开销

引用传递语法

引用传递的参数声明与普通参数声明类似,但需要在参数类型后面添加一个 & 符号。例如:


void swapNums(int &x, int &y);
复制代码


在这个例子中,xy 是引用参数。这意味着函数 swapNums 将直接访问调用者提供的变量的内存地址。

引用传递示例

以下示例展示了如何使用引用传递来交换两个变量的值:


void swapNums(int &x, int &y) {  int temp = x;  x = y;  y = temp;}
int main() { int firstNum = 10; int secondNum = 20;
cout << "Before swap: " << firstNum << " " << secondNum << endl;
swapNums(firstNum, secondNum);
cout << "After swap: " << firstNum << " " << secondNum << endl;
return 0;}
复制代码


在该示例中,swapNums 函数接收两个引用参数 xy。当调用 swapNums 函数时,它将直接访问 firstNumsecondNum 变量的内存地址,并交换它们的值。

引用传递与值传递的区别

引用传递的注意事项

  • 引用传递的参数必须在函数调用之前进行初始化。

  • 不能将空指针或野指针作为引用传递的参数。

  • 引用传递的参数不能重新绑定到其他变量。

总结

C++ 中的引用传递是一种强大的功能,可以提高代码的效率和可读性。通过理解引用传递的语法、用法和注意事项,您可以编写更加简洁、高效的 C++ 程序。

最后

为了方便其他设备和平台的小伙伴观看往期文章:


微信公众号搜索:Let us Coding,关注后即可获取最新文章推送


看完如果觉得有帮助,欢迎点赞、收藏、关注

发布于: 刚刚阅读数: 2
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
C++ 默认参数与引用传递:语法、用法及示例_程序人生_小万哥_InfoQ写作社区