给传参加上自动挡

2023-12-17 02:20
文章标签 参加 自动挡

本文主要是介绍给传参加上自动挡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在C语言中,如果一个函数带有参数,我们在调用时必须提供相应的参数值。然而,当我们不确定应该传入什么值时,C语言并不支持自动设置默认参数值的操作。与此不同的是,C++引入了缺省参数的概念,允许我们在函数声明时为某些参数指定默认值。这个特性的引入使得我们的函数多了一种自动挡的选择,让函数的调用更加灵活

缺省参数

概念

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值否则使用指定的实参。下面来看一个示例:

void Func(int a = 0)
{cout << a << endl;
}int main()
{Func();   // 这里没有传参,a就是缺省值(默认值)0Func(10); // 这里传了参数,a就是10了return 0;
}

在这段代码中,我们为函数 func 的参数 a 设置了一个默认值。这意味着,如果我们在调用这个函数时没有显式提供参数 a 的值,它将采用预先设定的默认值。而如果我们传递了具体的参数值,那么 a 的值就会取决于我们传入的实际参数。这种设置默认值的方式使得在函数调用时更加灵活,可以选择性地提供参数

缺省参数分类

全缺省参数

void Func(int a = 10, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;
}int main()
{Func();        // a = 10, b = 20, c = 30Func(1);       // a = 1, b = 20, c = 30Func(1, 2);    // a = 1, b = 2, c = 30Func(1, 2, 3); // a = 1, b = 2, c = 3// 如果传参数必须要从左往右依次传而不能跳着传return 0;
}

全缺省参数顾名思义就是所有参数都设置了缺省值。需要注意的是,调用这样的函数时,如果要传递参数,必须按照参数的顺序从左往右逐个传递,不能跳过中间的参数直接传递后面的参数。这种规则确保了参数传递的顺序性,使得函数调用更为清晰和可控。

半缺省参数

void Func(int a, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;cout << endl;
}int main()
{Func(1);       // a = 1, b = 20, c = 30Func(1, 2);    // a = 1, b = 2, c = 30Func(1, 2, 3); // a = 1, b = 2, c = 3return 0;
}

半缺省参数指的是函数中有部分参数设置了缺省值。需要注意的是,半缺省参数必须从右往左依次来给出,不能间隔着给。这样的规定是为了避免歧义,确保在只传递一个参数的情况下,编译器能够准确判断是传递给最左边的参数,并将其他参数设置为缺省值。

补充

1. 不能在声明和定义中同时使用缺省参数,以免导致编译器不确定使用哪个缺省值。
2
分离声明和定义时只在声明中为函数参数指定缺省值。如果是在定义中指定,那么在仅包含头文件的情况下调用函数且未传递参数时,编译器就会报错,说该函数不接受0个参数,此时缺省参数就失去了作用。示例代码如下:

// 这是 print.h#include <iostream>
using namespace std;void test(int n);// 这是 print.cpp#include "print.h"void test(int n = 10)
{cout << n << endl;
}// 这是test.cpp#include "print.h"int main()
{test();return 0;
}

3. 缺省值应当是常量或全局变量,以常量为佳。
4
C语言不支持缺省参数的特性。

这篇关于给传参加上自动挡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/502752

相关文章

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

天洑参加“船舶与海洋工程智能设计理论及方法”学术研讨会议

2024年8月23-24日,由武汉理工大学举办的“船舶与海洋工程智能设计理论及方法”学术研讨会议在武汉召开,南京天洑软件有限公司受邀参加。 会上中国工程院院士 中国舰船研究设计中心研究员 首席技术专家徐青、中国舰船研究设计中心副所长谢伟研究员、华中科技大学船舶与海洋工程学院程远胜教授、武汉理工大学船海与能源动力工程学院冯佰威教授作主旨发言与专题报告。 天洑软件船舶事业部部长姜栋在研讨会

Sollong、IO.NET和 Solana,为何参加 WebX 2024活动?

东京王子花园塔酒店 @ChainCatcher_携手 @DPCapital_XYZ与@WebX_Asia共同打造“世界のStaking最大级集结|Tokyo站”盛会,为全球Staking爱好者与行业精英搭建交流合作桥梁!全球顶尖Staking项目方、知名区块链机构、行业领袖与企业家将齐聚东京,共襄盛举! 活动亮点: ——与行业领袖互动 本次活动将汇聚 Web3 领域内最具影响力的行业领袖。与

没参加会议,还要 30000 字的会议材料写总结?用好 AI工具,30 分钟堵住领导的嘴

前段时间本来要参加总公司的重要会议,但由于临时出差错过了。 分公司老总,给了我 10 份会议材料内容,让我学习,并在节后梳理出要点。 结果,一过节就全都给忘记了,咋办?听说最近Kimi出了新玩法,能大幅提高使用效率,说干就干,研究看看多长时间能完成! 一、准备工具 KimiChat网址: https://kimi.moonshot.cn/ 即时工具: https://ww

OceanMind海睿思参加2024数博会“数据要素赋能生态”活动,获两项数据要素优秀产品认证

近日,2024数博会“数据要素赋能生态”交流活动在贵阳国际生态会议中心成功举办,中新赛克海睿思作为国内数据要素产业优秀服务商代表受邀参加并荣获两项数据要素优秀产品认证。 作为2024数博会的重要组成部分,本次交流活动由北京赛迪出版传媒有限公司主办,《软件和集成电路》杂志社、中国计算机行业协会大数据产业生态专业委员会承办。 活动聚焦“数据赋能 生态共建”这一主题,邀请院士专家、行业学者、

沸点 | LDBC 第18届 TUC 会议召开,专家孙宇熙受邀参加并发表演讲

图数据管理领域国际权威组织LDBC(Linked Data Benchmark Council)于8月30日至31日在广州举办了第18届LDBC TUC会议。作为图数据库领域的创新引领者,嬴图受邀参加此次盛会,国际高性能计算与存储系统专家、大数据专家、图专家及嬴图CEO Ricky (孙宇熙)在会议上发表了重要演讲。 LDBC TUC会议是LDBC重要的会议之一,每年都会聚集全球图数据库领域的专

编程要由 “手动挡” 变 “自动挡” 了?Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

我司总经理张戈参加第十届中国车联网大会暨智慧交通博览会

我司总经理张戈参加第十届中国车联网大会暨智慧交通博览会 第十届中国(大湾区)车联网大会暨智慧交通博览会于8月23日隆重举行,此次大会聚焦于前沿技术、行业热点、产业生态以及企业创新等多个方面。会议深入探讨了“车路云一体化”、5G技术、人工智能、大数据在车联网和智慧交通中的应用,涉及的热点话题包括低速无人驾驶、汽车数据出海安全和低空产业发展等。为推动产业融合,会议通过展示成果、倡议成立“广东

编程要由“手动挡”变“自动挡”了?Cursor+Claude-3.5-Sonnet,Karpathy大神点赞的AI代码神器!如何使用详细教程

Cursor情况简介 AI大神Andrej Karpathy都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比GitHub Copilot还好用! Cursor在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用OpenAI投资的Claude-3.5-Sonnet模型,这一举动不仅改变了代码生成领域的格局,也为程序员

单位普通职工去世了,该单位工会领导参加她的追悼会是这样致辞的?

单位普通职工去世了,该单位工会领导参加她的追悼会是这样致辞的? 这是一篇单位工会领导参加本单位一位普通职工追悼会的致词 (范文点评) 各位来宾、各位亲朋好友: 今天,我们怀着十分沉痛的心情悼念襄阳农行员工向某英同志。向某英同志因患罕见绝症,在与病魔顽强抗争长达六年之久,于**年8月6日17时46分在武汉同济医院医治无效不幸去世,年仅39岁。 向某英同志于**年7月出生于襄阳市**