【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语言不支持缺省参数

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

相关推荐
杉之19 分钟前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
Merokes1 小时前
关于Gstreamer+MPP硬件加速推流问题:视频输入video0被占用
c++·音视频·rk3588
hycccccch1 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
独好紫罗兰1 小时前
洛谷题单2-P5713 【深基3.例5】洛谷团队系统-python-流程图重构
开发语言·python·算法
天天向上杰2 小时前
面基JavaEE银行金融业务逻辑层处理金融数据类型BigDecimal
java·bigdecimal
闪电麦坤952 小时前
C#:base 关键字
开发语言·c#
Mason Lin2 小时前
2025年3月29日(matlab -ss -lti)
开发语言·matlab
请来次降维打击!!!2 小时前
优选算法系列(5.位运算)
java·前端·c++·算法
用键盘当武器的秋刀鱼2 小时前
springBoot统一响应类型3.5.1版本
java·spring boot·后端
别NULL2 小时前
机试题——统计最少媒体包发送源个数
c++·算法·媒体