C++基础之默认参数、函数重载与引用全解析 📅 发布时间:2026/7/9 19:07:02 👁️ 浏览次数: 一、默认参数默认参数的核心概念在 C 中默认参数Default Arguments 是为函数参数预先设定的 “备用值”在函数声明 / 定义时指定调用函数时若省略该参数编译器会自动使用这个预设值若显式传入参数则覆盖默认值。例//无默认参数 void fun1(int a) { coutaendl; } //默认参数为2 void fun2(int a2) { coutaendl; }测试#include iostream using namespace std; void fun1(int a) { cout a endl; } void fun2(int a 2) { cout a endl; } int main() { fun1(5); fun2(5); fun2(); return 0; }结果fun2没有参数的时候会输出默认参数2。二、函数重载在 C 中函数重载指在同一作用域内定义多个函数名完全相同但参数列表参数的个数、类型、顺序不同的函数调用时编译器会根据传入参数的特征个数、类型、顺序自动匹配到对应的函数版本。简单来说函数重载的核心是 “同名不同参编译器自动匹配”—— 让同一个函数名能处理不同类型 / 个数的参数。例如void add(int a, int b) { cout a b endl; } void add(double a, double b) { cout a b endl; } int main() { add(10, 20); add(1.5, 1.2); return 0; }输出C 编译器通过 “名字改编Name Mangling” 为每个重载函数生成唯一内部名实现调用匹配这也是 C 语言不支持重载的原因如果只是返回值不同则不能构成函数重载void add(){ } int add(){ }重点为什么c支持函数重载c语言不支持C 支持函数重载、C 语言不支持的根本原因是两者编译器对函数名的编译处理机制不同——C 会通过「名字改编Name Mangling」为函数生成唯一内部名C 语言仅保留原始函数名无法区分同名不同参的函数。C 为了支持重载设计了「名字改编」机制编译阶段编译器会根据「函数名 参数类型 参数个数」按照特定规则生成唯一的内部函数名链接阶段调用函数时编译器会根据传入参数的类型匹配对应的改编后函数名链接器能精准找到目标函数。C 语言编译器对函数的处理逻辑非常简单编译阶段仅记录函数的原始名称比如 Add不会将参数类型 / 个数融入函数名链接阶段链接器会根据原始函数名查找函数定义若存在多个同名函数哪怕参数不同链接器会判定为「重定义」直接报错。三、引用3.1引用的概念引用不是新定义一个变量而是给已存在变量取了一个别名编译器不会为引用变量开辟内存空间它和它引用的变量共用同一块内存空间。声明语法类型 引用名 原变量;如 int ref a;必须在声明时立即初始化不能先声明后赋值不可更改指向引用一旦绑定某个变量生命周期内不能再绑定其他变量无 NULL 引用引用必须绑定有效变量不能指向空值指针可以为 NULL多级引用无效不存在 int ref 这种 “引用的引用”编译报错。
亲测有效!卫生资格考试机构选择实践经验分享 行业痛点分析当前卫生资格考试选机构领域面临着诸多技术挑战。首先,考生在备考过程中需要面对大量的知识点和复杂的考试内容,如何高效地掌握这些知识成为一大难题。其次,不同考生的基础水平和学习习惯各不相同,传统的统一教学模式… 2026/7/3 16:59:15
【TIM】基本定时器定时实验(1) 文章目录前言一、TIM 简介二、 基本定时器三、基本定时器功能框图1.时钟源2.控制器3.计数器4.定时器周期计算四、定时器初始化结构体详解前言 定时器 (Timer) 最基本的功能就是定时了,比如定时发送 USART 数据、定时采集 AD 数据等等。如果把定时器与 GPIO 结合起来… 2026/7/9 19:04:17
KWDB 运维实战:拒绝数据孤岛!用 SQL 打通 Metrics 与 CMDB 的“任督二脉” 在互联网大厂,服务器监控(AIOps)是基础设施的命脉。一旦核心数据库或网关宕机,每分钟的损失可能高达数百万。 传统的监控方案(如 Zabbix、Prometheus)在面对海量指标时各有痛点:Zabbix 擅长告警… 2026/5/17 11:05:46
压电警报系统设计与PIC32MZ微控制器应用 1. 压电警报系统的核心组件解析在工业控制和消费电子领域,可靠的声音警报系统是保障设备安全运行和人机交互的重要环节。EPT-14A4005P压电扬声器与PIC32MZ1024EFE144微控制器的组合,为各类环境下的警报需求提供了高性价比解决方案。1.1 EPT-14A4005P压电… 2026/7/9 19:06:05
Pin-Server未来展望:编译器优化框架的技术演进与生态建设 Pin-Server未来展望:编译器优化框架的技术演进与生态建设 【免费下载链接】pin-server Pin (Plug-IN framework) server provides plugin APIs for compiler optimization developers to develop optimization pass. 项目地址: https://gitcode.com/openeuler/pin… 2026/7/9 19:06:05
Vision Transformer (ViT) Patch Embedding 实现对比:Conv2D vs Linear 性能与显存占用实测 Vision Transformer (ViT) Patch Embedding 实现对比:Conv2D vs Linear 性能与显存占用实测 1. 核心问题与背景 在计算机视觉领域,Vision Transformer (ViT) 已成为继卷积神经网络(CNN)之后的新一代骨干架构。与传统CNN不同,ViT将图像分割为… 2026/7/9 19:06:05
TMC7300与STM32F100ZE的有刷直流电机控制方案 1. 项目背景与核心器件选型有刷直流电机作为工业自动化、消费电子和机器人领域最常见的执行机构之一,其控制方案的稳定性和可靠性直接影响整个系统的性能表现。传统H桥驱动方案虽然简单易用,但在应对电机启停冲击、负载突变等工况时往往力不从心。这正是… 2026/7/9 19:04:04
高精度ADC ADS127L11与STM32F410RB的工业级应用方案 1. 项目背景与硬件选型解析在工业测量、医疗设备和精密仪器等领域,高精度模拟信号采集一直是关键挑战。传统8位或12位ADC在动态范围和信噪比方面存在明显局限,而24位Δ-Σ架构的ADS127L11配合STM32F410RB的组合,为需要微伏级精度的应用提供了… 2026/7/9 19:02:04
TCP 与 UDP 协议深度对比:3 大核心差异与 10 个典型应用场景选择指南 TCP 与 UDP 协议深度对比:3 大核心差异与 10 个典型应用场景选择指南在网络通信的世界里,TCP 和 UDP 就像两位性格迥异的信使。一位严谨可靠,确保每封信件准确送达;另一位雷厉风行,追求最快的投递速度。理解它们的本质… 2026/7/9 19:00:03
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08