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

这篇具有很好参考价值的文章主要介绍了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 变量的内存地址,并交换它们的值。

引用传递与值传递的区别

特性 引用传递 值传递
参数类型 引用类型 (int&、string& 等) 普通类型 (int、string 等)
参数传递 直接传递变量的内存地址 复制变量的值
修改参数值 可以修改调用者变量的值 不能修改调用者变量的值
效率 通常比值传递更有效 通常比引用传递效率低

引用传递的注意事项

  • 引用传递的参数必须在函数调用之前进行初始化。
  • 不能将空指针或野指针作为引用传递的参数。
  • 引用传递的参数不能重新绑定到其他变量。

总结

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

最后

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

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

看完如果觉得有帮助,欢迎点赞、收藏、关注文章来源地址https://www.toymoban.com/news/detail-852593.html

到了这里,关于C++ 默认参数与引用传递:语法、用法及示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )

    之前的 【C++】C++ 引用详解 ① ~ ⑦ 博客中 , 讲解的都是 普通引用 , 也就是 将 普通变量 赋值给 引用 , 过程如下 : 先定义 普通变量 a , 然后定义 已存在变量 a 的引用 b ; 这里的 引用 b 就是 普通引用 ; 普通引用代码示例 : 执行结果 : 与 变量引用 相对的就是 常量引用 ; 通过 普

    2024年02月11日
    浏览(33)
  • 【docker常用命令系列】Docker Build语法用法示例详解

    Docker Build是Docker提供的一个命令,用于根据Dockerfile构建自定义的镜像。通过Docker Build,可以将应用程序、环境和依赖项打包到一个可移植的容器中,使得应用在不同环境下都能以相同的方式运行。 docker build [OPTIONS] PATH | URL | - 是 docker build 命令的语法说明。下面解释每个部分

    2024年04月14日
    浏览(36)
  • Vue中v-on的基础用法、参数传递和修饰符

    目录 一、v-on的基本用法 使用v-on:click给button绑定监听事件以及回调函数,@是v-on:的缩写,也就是简写也可以使用@click。方法一般是需要写方法名加上(),在@click中可以省掉,如上述的加。 二、v-on的参数传递 三、v-on的修饰词 .stop的使用,btn的click事件不会传播,不会冒泡到上

    2024年02月11日
    浏览(41)
  • hive beeline参数及示例用法

    beeline 是一个用于连接 HiveServer2 的命令行工具。 使用beeline -u可以指定连接的URL。 例如,beeline -u jdbc:hive2://localhost:10000/default 可以连接到本地的HiveServer2服务。 如果需要用户名和密码进行连接,则可以使用 beeline -u jdbc:hive2://localhost:10000/default -n username -p password 的方式进行连接

    2024年02月03日
    浏览(34)
  • c++——默认参数和占位参数

    C++允许赋予函数参数默认值,即在调用该函数时,可以不写某些参数的值,编译器会自动把默认值传递给调用语句中。 1、基本语法 2、默认参数的规则 ①默认值只能在声明中设置 ②注意传参规则,实参给形参传参,是 从前往后 进行 ③给函数参数设置默认值,从 后往前 进

    2024年02月11日
    浏览(33)
  • C++的引用变量作为函数参数

    在C++的中新增一个特性:按引用传递变量,虽然与按传递变量的地址可以实现相同的结果,但引用有其独特的地方。 引用传递: 引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量的别名。 通过引用变量用作参数,函数将使用原始数据,而不是其副本。 举

    2023年04月14日
    浏览(35)
  • 【C++入门 三】学习C++缺省参数 | 函数重载 | 引用

    缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。 ①全缺省参数 ②半缺省参数 注意: 1. 半缺省参数必须从右往左依次来给出,不能间隔着给 2. 缺省参数不能在函数声明和定义中

    2024年02月06日
    浏览(42)
  • C++笔记之单例通过GetInstance传递参数

    code review! 运行 代码

    2024年02月10日
    浏览(38)
  • C++ 参数的三种传递方式和应用参加

    C++ 参数的三种传递方式分别是 值传递 、 指针传递 和 引用传递 。 值传递 值传递的实质 将实参的值(a、b)复制到形参(m、n)相应的存储单元中,即形参和实参分别占用不同的存储单元。 值传递的特点 值传递的特点是单向传递,即主调函数被调用时给形参分配存储单元,把

    2024年02月08日
    浏览(35)
  • C++之入门之缺省参数&&函数重载&&引用

    重新拿起曾经尚未填的C++的坑,从现在我会继续更新C++的相关内容,希望各位能够支持 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实 参则采用该形参的缺省值,否则使用指定的实参 (1)全缺省参数 (2)半缺省参数 (1)半

    2023年04月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包