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

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

相关推荐
basketball6165 分钟前
设计模式入门:3. 适配器模式详解 C++实现
c++·设计模式·适配器模式
yzy858 分钟前
数据同步工具 -- syncthing
开发语言
catchadmin12 分钟前
PHP 应用 security.txt 漏洞披露实践
开发语言·php
糖果店的幽灵15 分钟前
LangChain 1.3 完全教程:从入门到精通-Part 11: Tools(工具系统)
开发语言·langchain·c#
夜勤月16 分钟前
AQS 与 ThreadPoolExecutor 深度拆解:JDK 高并发底层设计精髓
android·java·开发语言
luj_176820 分钟前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
phltxy23 分钟前
Spring AI 应用开发
java·人工智能·spring
程序大视界24 分钟前
【C++ 从基础到项目实战】C++(二):数组、字符串与结构体——组织数据的容器
开发语言·c++·cpp
码不停蹄的玄黓26 分钟前
Arthas 线上问题排查实战:CPU过高、频繁GC
java
Michaelwubo29 分钟前
swagger全集通+mock(prism)
java