看完少踩 80% 的坑:C++ 输入输出、缺省参数、函数重载,一次讲透还不秃头
何时秋风初拂面已觉寒气暗侵衣。一叶梧桐惊岁晚满庭风雨送夏归。1.C的输入和输出使用C的输入和输出需要包含头文件#includeiostreamcin 与 cout 位于 std 命名空间内使用时需要通过 std:: 限定或是通过 using 引入命名空间C 的输入输出是基于流对象实现的核心为标准输入流 cin 与标准输出流 cout二者定义在 std 命名空间中是对控制台输入输出的面向对象封装。cin 负责从键盘读取数据cout 负责向控制台输出内容还有 cerr 专门用来输出错误信息。相较于 C 语言的 scanf 和 printfcin 与 cout 依靠运算符重载自动识别变量类型不需要手动书写格式控制符使用提取运算符 完成输入使用插入运算符 完成输出。Ⅰ.std::cout此处c是将其他类型转换为char是ostream类的对象主要面向窄字符的标准输出流自动指定类型cout 输出内容时不会自动换行需要手动添加换行符号cout相比于printf:①.printf需要指定格式原生定义类型其他类型无法支持②.cout/cin可以输入或者输出任意类型③.cout效率没有printf高大量输出时需要改进:#include iostream using namespace std; int main() { ios_base::sync_with_stdio(false);//用来关闭 C 标准流和 C 标准流的同步通常可以加快 cin / cout 的输入输出速度。 //ios_base::sync_with_stdio(false); 也可以写成 ios::sync_with_stdio(false);两者都可以。 cin.tie(nullptr);//cin.tie(nullptr) 取消 cin 与 cout 的绑定减少不必要的刷新 cout.tie(nullptr); return 0; }Ⅱ.std::endl是操纵符底层实现是一个函数流插入输出时相当于插入一个换行字符刷新缓冲区end line换行频繁使用 endl 会反复刷新缓冲区造成性能下降大量输出场景优先选择 \n 代替 endlⅢ.是流插入运算符是流提取运算符C语言还用这两个运算符做位运算左移/右移Ⅳ.std::cin是istream类的对象面向窄字符narrow characters (of type char)是标准输入流。cin 默认将空格、换行符、制表符视作分隔符读取数据时会自动跳过空白字符std::cinid//先输入i再输入dcin 读取字符串时遇到空格就会停止读取如果需要读取包含空格的整行文本应当选用 getline不能直接使用 cin 读取字符串。cin 读取完成后输入缓冲区会残留换行符干扰后续 getline 读取需要手动清理缓冲区cin 读取失败时流对象会进入错误状态后续所有输入操作都会失效需要检测并重置流状态Ⅴ.cerr 输出的错误信息不经过缓冲区缓存会直接打印适合输出程序的报错信息2.缺省参数默认值是声明或定义函数时为函数指定的一个缺省值在调用该函数时若没有指定实参则采用该形参的缺省值否则使用指定的实参缺省参数分为全缺省和半缺省Ⅰ.全缺省用到全部形参缺省值#include iostream using namespace std; void f(int a 10, int b 20, int c 30) { cout a a endl; cout b b endl; cout c c endl; }情景一f():a10,b20,c30情景二f(1):a 1,b 20,c 30情景三f(1,2):a 1,b 2,c 30情景四f(1,2,3):a 1, b 5,c 3Ⅱ.半缺省部分形参给缺省值C中参数从右向左依次连续缺省#include iostream using namespace std; void f(int a , int b 20, int c 30) { cout a a endl; cout b b endl; cout c c endl; }Ⅲ.带缺省参数的函数调用C从左往右依次给实参Ⅳ.函数定义和声明分离时缺省参数不能再函数声明和定义中同时出现规定必须函数声明给出缺省值如果定义在声明之后定义中只能出现声明中未指定默认值的参数如声明void printint a 10,int b,int c定义void print(int a,int b 20,int c 30)声明时只给了部分默认值定义时可以给出剩下未给出的默认值//声明里设定缺省值 int Add(int a 1, int b 2); //全缺省函数 int Add(int a, int b) { int c a b; return c; }注意缺省值可以是常量或者全局变量但不能使用局部变量作为缺省参数的值。缺省参数的优点缺省参数常用于函数存在默认使用方案的场景能够简化函数调用减少重复传参。例如初始化函数大部分场景下使用默认大小只有特殊需求时才手动传入自定义数值此时就适合使用缺省参数。在类的构造函数中缺省参数也十分常用可以用一个构造函数实现多种初始化方式减少重载函数的数量。函数重构C支持在同一作用域中出现同名函数但是要求这些同名函数的形参不同可以是参数个数不同或者类型不同这样C函数调用就表现出了多态行为更加灵活重构一参数类型不同如void swap(int * p1,int* p2){...}void swap(double* p1,double* p2){...}重构二参数个数不同如void f() { cout f() endl; } void f(int a 10) { cout f(int a) endl; }不推荐上述例子中这样写虽然在意义上构成函数同构但在f()调用时会报错存在歧义不知道调用的是谁不传参数调用谁都有可能重构三参数类型顺序不同void f(int a, char b) { cout f() endl; } void f(char a, int b) { cout f(int a) endl; }注意返回值不同不可以作为函数重载

相关新闻

第043篇 CAS 与原子类——无锁编程的第一课

第043篇 CAS 与原子类——无锁编程的第一课

摘要:本篇是《Android软件开发面试从入门到精通》第 43 篇,主题为「CAS 与原子类——无锁编程的第一课」。「CAS 与原子类——无锁编程的第一课」是面试里出场率极高的一环。本篇按概念、原理、代码、误区四步走,看完就能组织出自己的回答。 关键词:Android 软件开发 / And…

2026/10/1 17:13:05 阅读更多 →
软件安全性相关内容主要分布在“网络与信息安全知识”模块,同时也与“系统开发和运行知识”中的软件质量、容错机制、安全测试等内容存在交叉

软件安全性相关内容主要分布在“网络与信息安全知识”模块,同时也与“系统开发和运行知识”中的软件质量、容错机制、安全测试等内容存在交叉

软件设计师考试属于全国计算机技术与软件专业技术资格(水平)考试中的中级资格,由人力资源和社会保障部、工业和信息化部共同组织实施。2026年软件设计师考试大纲和教材未改版,仍沿用《软件设计师考试大纲》(2018年审定…

2026/10/1 17:13:05 阅读更多 →
算法题不再完全依赖固定模板,更强调现场分析;程序设计题常与设计模式结合,例如单例、工厂、观察者、策略、原型

算法题不再完全依赖固定模板,更强调现场分析;程序设计题常与设计模式结合,例如单例、工厂、观察者、策略、原型

上午题特点是面广、概念多、陷阱多,重点不在“钻很深”,而在“别丢基础分”。模块常考内容复习策略数据结构与算法栈队列、树、图、排序查找、复杂度先掌握性质和复杂度,再练典型题软件工程开发模型、需求分析、测试、设计模式高频且易混&…

2026/10/1 17:13:05 阅读更多 →

最新新闻

GPUStack开启DSpark JSON增强:DeepSeek结构化输出提速3.8倍

GPUStack开启DSpark JSON增强:DeepSeek结构化输出提速3.8倍

上个月我在跑一个文档解析类的 Agent 任务时,被一个现象卡了很久:模型输出整体上看很正常,但只要我要求它返回 JSON,响应时间就肉眼可见地慢下来。当时集群用的是 GPUStack,底座是 DeepSeek,GPU 利用率并没…

2026/10/1 18:40:46 阅读更多 →
异步事件驱动重构:AI编程能力的真实边界与工程落地

异步事件驱动重构:AI编程能力的真实边界与工程落地

1. 这不是模型发布会,是工程师的深夜压测现场说实话,GPT-6 Sol、Claude Opus 4.8、Gemini 3.5 Flash——这三个名字最近在技术群里刷屏的速度,快过我去年部署K8s集群时etcd崩溃的频率。但真正让我坐下来把键盘敲热的,不是它们官网…

2026/10/1 18:40:46 阅读更多 →
FPGA调试中的ILA时钟设置:采样原理、配置流程与跨时钟域避坑指南

FPGA调试中的ILA时钟设置:采样原理、配置流程与跨时钟域避坑指南

搞FPGA调试这么多年,我发现自己和周围同事栽过最多的跟头,不在RTL逻辑本身,反而在调试工具的使用细节上。尤其是Vivado里ILA调试核的时钟设置,这个问题看着不起眼,却能让你的波形窗口一片空白,也能让一个明…

2026/10/1 18:40:46 阅读更多 →
SpringBoot个人健康管理系统:从设计到答辩全攻略

SpringBoot个人健康管理系统:从设计到答辩全攻略

最近我遇到不少计算机专业的朋友在挑毕业设计题目,问得最多的就是“基于SpringBoot的个人健康管理系统”。这个题目乍一看平平无奇,好像就是一套标准的增删改查,但你要真把它做成一个能在答辩现场立住、能说明白“健康监测、行为追踪、生活方…

2026/10/1 18:40:46 阅读更多 →
Bedrock质量与效率双优实战:拒绝谣言,用现有模型落地

Bedrock质量与效率双优实战:拒绝谣言,用现有模型落地

我注意到您提供的输入内容中存在严重的信息矛盾与事实偏差,需要先做关键澄清: 目前(截至2024年7月)并不存在所谓“GPT-6 Sol”或“GPT-6 Luna”模型,OpenAI未发布、未命名、未开源任何代号为GPT-6的模型,A…

2026/10/1 18:40:46 阅读更多 →
K9s v0.1.3 版本解析:热键体系重构、多集群配置迁移与 ReplicationController 支持

K9s v0.1.3 版本解析:热键体系重构、多集群配置迁移与 ReplicationController 支持

云原生容器编排CLI运维 【免费下载链接】k9s 🐶 Kubernetes CLI To Manage Your Clusters In Style! 项目地址: https://gitcode.com/GitHub_Trending/k9s/k9s 点击查看 免费下载 导读 K9s v0.1.3 是该项目早期发展中一次承上启下的关键发布&#xff1…

2026/10/1 18:39:46 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →