【C++】输入&输出&缺省参数

大家好,我是苏貝,本篇博客带大家了解C++的缺省参数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️


目录

  • [一. 输入&输出](#一. 输入&输出)
  • [二. 缺省参数](#二. 缺省参数)
    • [1 缺省参数概念](#1 缺省参数概念)
    • [2 缺省参数分类](#2 缺省参数分类)
      • [a. 全缺省参数](#a. 全缺省参数)
      • [b. 半缺省参数](#b. 半缺省参数)

一. 输入&输出

新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的

cpp 复制代码
#include<iostream>
using  namespace std;

int main()
{
	cout << "hello c++" << endl;

	int i = 0;
	std::cin >> i;
	cout << i << endl;

	return 0;
}

1:使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。

2:std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中

3:cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含< iostream >头文件中。

4:<<是流插入运算符,>>是流提取运算符

对<<和>>做出解释:

在C语言阶段,我们也见过这两个符号,它们分别代表左移和右移。

<<:

cpp 复制代码
#include<iostream>
using namespace std;

int main()
{
	//1.左移
	int i = 1;
	i <<= 1;

	//2.流插入运算符
	cout << i << endl;

	return 0;
}

符号>>

cpp 复制代码
#include<iostream>
using namespace std;

int main()
{
	//1.右移
	int i = 10;
	i >>= 1;
	cout << i << endl;

	//2.流提取运算符
	int j = 0;
	cin >> j;
	cout << "j=" << j << endl;

	return 0;
}

使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。 C++的输入输出可以自动识别变量类型。

cpp 复制代码
#include<iostream>
using namespace std;

int main()
{
	//1.流插入
	int i = 10;
	char c = 'a';
	const char* str = "hello world";
	cout << i << c << str << endl;

	//2.流插入
	cin >> i >> c;
	cout << i << c << str << endl;

	return 0;
}

二. 缺省参数

1 缺省参数概念

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

cpp 复制代码
#include<iostream>
using namespace std;

void Fuc(int a = 0)
{
	cout << a << endl;
}

int main()
{
	Fuc(2);//传参时,使用实参
	Fuc();//没有参数时,使用参数的默认值

	return 0;
}

2 缺省参数分类

a. 全缺省参数

全缺省参数指函数的每个参数都设立了缺省值

cpp 复制代码
#include<iostream>
using namespace std;

void Fuc(int a = 0, int b = 1, int c = 2)
{
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl << endl;
}

int main()
{
	Fuc(4, 5, 6);
	Fuc(4, 5);
	Fuc(4);
	Fuc();

	return 0;
}

b. 半缺省参数

半缺省参数指函数的部分参数被设立了缺省值,且缺省值必须从右往左依次给,不能间隔着给

cpp 复制代码
#include<iostream>
using namespace std;

void Fuc(int a , int b = 1, int c = 2)
{
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl << endl;
}

int main()
{
	Fuc(4, 5, 6);
	Fuc(4, 5);
	Fuc(4);

	return 0;
}

注意:

  1. 缺省参数不能在函数声明和定义中同时出现,因为如果声明和定义中都给了缺省值,但缺省值不同,那编译器就不知道该听谁的。如果要给,就是在声明的时候给
  2. 缺省值必须是常量或者全局变量
  3. C语言不支持缺省参数

好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

相关推荐
dear_bi_MyOnly6 分钟前
栈和队列:从原理到应用全解析
c语言·开发语言·c++·学习·分类
Want59511 分钟前
Python大雪纷飞①
开发语言·python·数学建模
代钦塔拉25 分钟前
【C++/Qt 进阶】设计模式系列(4):原型模式——用“克隆“代替“重新构造“
c++·qt·设计模式
毕业设计70327 分钟前
(免费领源码)SSM董家湾线上点餐系统04682- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·redis·mysql·tomcat·maven·mybatis·ssm
yujunl31 分钟前
重写了一个BOM查询的脚本
开发语言
Q26433650231 小时前
【有源码】基于SpringBoot+Vue的居民健康体检与慢病干预管理系统-面向智慧医疗的体检预约与健康知识服务平台
java·vue.js·spring boot·mysql·毕业设计·javaweb·课程设计
事圆则缓1 小时前
Kotlin 集合与序列:给页面一份清楚的数据
开发语言·windows·kotlin
事圆则缓1 小时前
Kotlin 异步与并发:从一次搜索请求走到状态流
android·开发语言·kotlin
从小白到软工1 小时前
4-3 项目-学生成绩管理系统(上)
c语言·开发语言·数据结构·经验分享·ai编程