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

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

相关推荐
Bartender_Jill2 分钟前
[ROS2]解决PyQt5和sip的各种报错问题 stderr: qt_gui_cpp
开发语言·python·qt·机器人·数据可视化
weixin_632077636 分钟前
c++抽象类 abstract class
开发语言·c++·多态
无夜_16 分钟前
Observer(观察者模式)
开发语言·c++
gofind22 分钟前
python安装教程
开发语言·python
橘子海全栈攻城狮35 分钟前
【源码+文档+调试讲解】基于Android的固定资产借用管理平台
android·java·spring boot·后端·python·美食
ac-er888838 分钟前
PHP反射机制
开发语言·php
@haihi40 分钟前
每天一道面试题5——Linux内核包含哪些部分?
java·linux·运维·服务器
LluckyYH1 小时前
代码随想录Day 62|Floyd 算法精讲、A \* 算法精讲 (A star算法),题目:97. 小明逛公园、127. 骑士的攻击
数据结构·c++·算法·leetcode·图论
名本无名1 小时前
单细胞转录组 —— kb-python 原始数据处理
开发语言·windows·python