目录

一. 概念

二. 分类

全缺省参数

半缺省参数


一. 概念

缺省参数(有些地方叫默认参数)是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。

void TestFunc(int a = 0)
{cout << a << endl;
}
int main()
{TestFunc(); //没有传参时,使用参数的默认值TestFunc(10); //传参时,使用指定的实参
}

二. 分类

  • 全缺省参数

缺省全部参数

void TestFunc(int a = 10, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;
}
  • 半缺省参数

缺省部分参数

void TestFunc(int a, int b = 10, int c = 20)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;
}

注意:

1. 半缺省参数必须从右往左缺省,连续的,不能间隔着给

void Test(int a = 10, int b = 20, int c = 30)
{cout << a << " " << b << " " << c << endl;
}
int main()
{Test();//全用默认的,全缺省Test(1);//只有第一个不用默认的,半缺省Test(1, 2);//只有第三个用默认的,半缺省Test(1,2,3);//都不用默认的,不缺省return 0;
}

2. 缺省参数不能在函数声明和定义中同时出现,声明和定义分离的话,必须在声明的时候给

因为如果分离了,在编译阶段,两个.cpp并没有链接在一起,只有链接阶段才会链接在一起,那么,如果是定义给了,声明没给,在调用函数的那个.cpp文件里包含了头文件,里面有有函数的声明,但是没有函数的定义,函数的声明里有参数,但是如果你想使用缺省参数,由于声明没给缺省参数,就会出现,这个函数有参数,你需要传参数进去,但是由于你想使用缺省参数而没传参数,就会出现错误因而报错

//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{}
// 注意:如果声明与定义位置同时出现,恰巧两个位置提供的值不同
//那编译器就无法确定到底该用哪个缺省值。

3. 缺省值必须是常量或者全局变量

4. C语言不支持(编译器不支持)

C++入门级——缺省参数相关推荐

  1. 【C++】函数缺省参数的作用

    用法:void func(int param1, int param2 = 1, int param = 3) {} func(10); //等同于func(10, 1 , 3) func(10,8) ...

  2. 缺省参数-缺省参数的注意事项

    def print_info(name, title="", gender=True):""":param title: 职位:param name: ...

  3. 缺省参数-指定函数缺省参数的默认值

    def print_info(name, gender=True):""":param name: 班上同学的姓名:param gender: True 男生 False ...

  4. python笔记之函数参数(缺省参数,命名参数,不定长参数)

    缺省参数 函数中定义带有初始值的形参 参数调用时,缺省参数可传,可不传 缺省参数一定在参数列表的最后面 缺省参数的数量没有限制 def x_y_sum(x,y=20): #缺省参数要在参数列表的最后p ...

  5. 第一周 从C走进C++ 008 函数缺省参数

    1. 函数的缺省参数  C++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,那么调用函数的时候,若相应位置不写参数,参数就是缺省值. void func( int x1, int x2 = ...

  6. C++起始(关键字,命名空间,缺省参数,函数重载(c语言为什么不支持函数重载))

    1. C++关键字(C++98) 2. 命名空间 在C/C++中,变量.函数和后面要学到的类都是大量存在的,这些变量.函数和类的名称将都存在于全局作用 域中,可能会导致很多冲突.使用命名空间的目的是对 ...

  7. python缺省参数与多个函数返回值

    缺省参数 调用函数时,缺省参数的值如果没有传入,则被认为是默认值. 下例会打印默认的age,如果age没有被传入. def printinfo( name,age = 35 ): # 打印任何传入的字 ...

  8. C语言 函数缺省参数 - C语言零基础入门教程

    目录 一.函数简介 1.函数声明 2.函数定义 3.函数调用 4.函数形参和实参 二.函数缺省参数 1.函数全缺省参数 2.函数半缺省参数 三.注意事项 四.猜你喜欢 零基础 C/C++ 学习路线推荐 ...

  9. “.NET研究”谈谈C# 4.0新特性“缺省参数”的实现

    C#4.0关于缺省参数的新特性,相信大家都不会陌生.所谓缺省参数,顾名思义,就是在声明方法的某个参数的时候为之指定一个默认值,在调用该方法的时候如果采用该默认值,你就无须指定该参数.和很多语言层面特性 ...

最新文章

  1. 以下属于linux文件系统认为的文件是,信息安全技术题库:在Linux系统中,图形文件、数据文件、文档文件等都属于()。...
  2. LINUX装魂斗罗游戏,魂斗罗战甲1-支援形态装置搭配思路及攻略
  3. msf:Known bug in WMI query, try migrating to another process
  4. 粗糙集的基础理论汇总
  5. DDL触发器与DML触发器比较
  6. .NET Core,.NET Framework和Xamarin有什么区别?
  7. 转载关于星座理论的套路
  8. .Net Framework3.5离线安装
  9. iPhone使用教程
  10. SSH 只能用于远程 Linux 主机?那说明你见识太小了!
  11. SaaSBase:最适合小团队轻量级项目管理的软件——Tower
  12. 腾讯翻译君在线翻译怎么翻译整个文件_很实用的PDF文档在线翻译工具,整篇PDF翻译一键搞定...
  13. 2019年中国公有云厂商发展状况白皮书
  14. Innoreader + Rsshub
  15. 函数式编程Haskell初探
  16. Echarts visualMap:piece划分方法
  17. 第十三届蓝桥杯大赛软件赛决赛(C/C++ 大学B组)
  18. Corona SDK 游戏开发引擎介绍
  19. 8421码 5421码 2421码 余三码
  20. 微信小程序开发之——比较数字大小-页面样式(2.3)

热门文章

  1. clouderaManager--------------知行教育大数据分析平台(三)
  2. android的u盘如何卸载,Android教程: 使用RE Manager删除系统自己的软件
  3. 快递单号物流动态快速的跟踪方法
  4. 阿里云CDN6.0发布 重新定义CDN内涵
  5. 一行代码解决scp在Internet传输慢的问题
  6. 小红书KOC素人笔记种草怎么做?
  7. 字节跳动面试算法题目以及答案
  8. 贝尔华为OLT业务替换方案
  9. 什么是制表符终止位?
  10. B端产品经理与C端产品经理