【C++入门(2)】输入输出与缺省参数

2024-06-14 15:52

本文主要是介绍【C++入门(2)】输入输出与缺省参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、<iostream>

1、cout、endl、<<

C++中增加了头文件<iostream>来进行输入和输出操作。

	//char a = 'k';//int b = 10;//double c = 3.14;std::cout << a << "abc" << '\n' << b << c << std::endl;

这是一个输出语句,它的作用相当于C语言中的printf。cout控制台输出(console out),endl换行(end line),<<流输出操作符

它最明显的优点是可以自动识别类型,省去了C语言中使用printf时必须用占位符来明确变量的类型的麻烦。当然天上不会掉免费的馅饼,这一对程序员的便捷之处,是牺牲了一定的程序运行速度换来的,这种输出方式往往比printf要慢。

 cout、endl之前之所以会有std::,是因为C++的库中,为了避免库函数等的名字和我们程序员使用的名字相冲突,把它自己的函数名等都封装到了一个命名空间域std中,所以使用这些库中的函数时,要声明它在哪里。如果不想每次都声明,也可以展开命名空间域std:

	using namespace std;cout << a << "abc" << '\n' << b << c << endl;

2、cin、>>

cin是流插入操作符(console in),>>是流插入操作符。他们可以把数据输入到变量中。

二、缺省参数

1、普通的函数

void func(int a, int b, int c)
{cout << a << endl;cout << b << endl;cout << c << endl;
}

2、全缺省参数的函数

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

在C语言中我们调用函数的时候,函数有多少形参,我们就需要传多少参数。缺省参数的意思就是说,我们现在可以在函数定义的时候就给形参附上初值,将来调用函数传参的时候,可以少传参数,就像下面这样:

3、含缺省参数的函数的传参规则

有缺省参数的函数传参时,必须从左到右连续传递。换句话说,就是只能从右往左依次不传,而不能跳跃着传参:

4、半缺省参数的函数

半缺省参数不是指缺省参数刚好占所有参数的一半,而是指既含有有缺省参数,又含有普通参数的函数:

void func(int a, int b = 2, int c = 3)
{cout << a << endl;cout << b << endl;cout << c << endl;
}

半缺省参数的函数,它的缺省参数必须是从右向左定义的,而不能是从左到右。

对半缺省参数传参时,普通参数是一定要传的,缺省参数可传可不传。

5、含缺省参数的函数的声明与定义

含缺省参数的函数,声明与定义同时出现时,只需要在函数声明中规定缺省参数,而函数定义中不可以出现缺省参数:

这一规定是为了避免出现在函数声明与函数定义中,缺省参数被赋予的初值不同而导致的冲突。

这篇关于【C++入门(2)】输入输出与缺省参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060843

相关文章

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成