当前位置: 首页 > article >正文

c++入门:函数实参形参傻傻分不清?如何改变实参!

值传递是 C 中最基本的参数传递方式。它的核心意思是当你把一个变量作为参数传给函数时函数得到的是这个变量的一个副本而不是变量本身。所以在函数内部修改这个副本外部的原变量纹丝不动。 举个生活例子你把一张照片的复印件交给朋友朋友在复印件上画画。你手里的原照片一点没变。这里的复印件就是“形参”你手里的原照片就是“实参”。void change(int x) { // x 是形参 x 100; // 修改的是 x } int main() { int a 10; change(a); // 把 a 的值“复印”一份给 x cout a endl; // a 还是 10 }为什么 a 没变因为当调用change(a)时系统在内存中新建了一个变量x并把a的值10复制给x。从此x和a就是两个独立的变量只是初始值相同。在函数内修改x完全不影响外面的a。比喻你有一张写着数字10的纸条a。你把它复印了一份x然后在复印件上改成100。原来的纸条依然是10没有变化。 如何修改实参两种常用方法如果我们希望函数内部能够改变外面的变量就需要让函数“拿到”变量本身而不是复印件。C 提供了两种方式指针传递和引用传递。二者的重点都在于函数的参数列表1. 指针传递传地址void change(int *p) { // p 是一个指针存储地址 *p 100; // 通过地址找到变量修改它 } int main() { int a 10; change(a); // 把 a 的地址交给函数 cout a endl; // 输出 100a 被修改了 }解释a是 a 的地址可以想象成 a 家的门牌号。函数收到地址后用*p去“敲门”直接修改了 a 家的值。比喻你直接告诉别人你家的门牌号地址他按地址找到你家进去把数字改成100。这样原来那张纸条a上的数字就变了。2. 引用传递C 特有更简洁void change(int x) { // x 是 a 的别名引用 x 100; // 修改 x 就是修改 a } int main() { int a 10; change(a); // 直接传 a但函数参数是引用 cout a endl; // 输出 100 }解释int x表示 x 是某个整数的“别名”。在调用时x直接绑定到a所以对x的操作就是对a的操作。这就像给 a 起了个小名叫小 a叫小 a 就是叫 a。比喻你给变量 a 取了个外号叫“x”叫“x”的时候就是在叫 a。所以改 x 就是改 a。 总结值传递形参是实参的副本修改形参不影响实参。要修改实参必须传递地址指针或使用引用。引用在 C 中更常用因为它写法简单且能明确表达“我要修改实参”的意图。

相关文章:

c++入门:函数实参形参傻傻分不清?如何改变实参!

值传递是 C 中最基本的参数传递方式。它的核心意思是:当你把一个变量作为参数传给函数时,函数得到的是这个变量的一个副本,而不是变量本身。所以在函数内部修改这个副本,外部的原变量纹丝不动。📦 举个生活例子你把一张…...

ObsPy完整指南:如何用Python快速处理地震数据

ObsPy完整指南:如何用Python快速处理地震数据 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy ObsPy是一个专为地震学和地震观测站设计的Python工具库&…...

怎样评估数据化管理?数据化管理如何持续改进?

在数据这个行当工作了这么多年,我经常会和不同公司的朋友聊天。大家刚开始做数据化管理时总是干劲十足,买工具、建报表、做大屏。但一两年后,常常陷入一种困惑:钱花了,屏挂了,但感觉业务还是老样子。这时候…...

夸克扫码登录

kefu16665...

【FastAPI】 响应类型详解:从默认 JSON 到自定义响应

FastAPI 响应类型详解:从默认 JSON 到自定义响应(HTML/文件/流/重定向) 一、FastAPI 响应机制概述 FastAPI 默认会将路径操作函数返回的 Python 对象(如 dict、list、Pydantic Model)自动转换为 JSON 格式,…...

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40%

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40% 在资源受限的环境中部署高效的句子嵌入模型一直是开发者的痛点。all-MiniLM-L6-v2作为轻量级语义表示模型,虽然已经比标准BERT模型小了80%以上,但在…...

工程师必备:高效阅读Datasheet的实用技巧

1. 为什么工程师必须掌握Datasheet阅读能力在嵌入式系统和硬件开发领域,Datasheet(数据手册)就是芯片的"使用说明书"。我从业十余年,见过太多工程师因为不会正确阅读Datasheet而踩坑的案例。有一次团队花了两个月调试一…...

XZ8011双节8.4V充电芯片 输入电压8.9-15V

XZ8011是一款完整的双节锂离子电池恒压恒流充电管理芯片。采用ESOP8封装形式,外加很少的外部元件,使其成为便携应用的理想选择。 XZ8011通过外接电流检测电阻即可实现高精度的充电电流。其内部有热反馈电路可以对在充电过程中对芯片温度加以控制。充电截…...

全双工和半双工的区别

全双工和半双工是描述通信双方数据流动方向的两种基本模式,它们决定了通信链路的利用率、硬件复杂度和应用场景。下面从定义、工作机制、典型协议、优缺点、实际应用五个方面展开。一、基本定义模式英文数据传输方向比喻单工Simplex单向,只能A→B&#x…...

从火柴盒到AI:探索MENACE的数字化旅程

在计算机科学的历史中,有许多有趣的实验和发明,其中之一便是由唐纳德米奇(Donald Michie)设计的“火柴盒计算机”(Matchbox Educable Noughts and Crosses Engine,简称MENACE)。这个装置使用了火柴盒和彩色珠子来模拟人工智能,教机器玩井字游戏(Tic-Tac-Toe)。本文将…...

单线程 Redis 的高性能之道

引言Redis 以单线程模型处理网络请求与命令操作,却能在高并发场景下保持惊人的吞吐能力。这背后离不开三大基石:全内存存储、高效数据结构(哈希表、跳表等)以及 epoll 多路复用机制,让单线程能够高效处理海量连接。 随…...

解决Python SocketIO客户端连接问题

引言 在构建一个IT自动化系统时,管理多个电脑的需求日益增强。为了实现这一目标,我采用了以下技术栈: 前端:React 后端****中间层:NodeJS 终端代理:Python 然而,在使用Python实现SocketIO客户端时,我遇到了一个问题:Python客户端无法正常打印连接成功的消息。本文将详…...

无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具

无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化时代,用户常常面临…...

清明节海报设计指南:4个要点打造高级感视觉呈现

每到清明临近,总有人为海报设计发愁。想做一张既体面又有格调的清明节海报,打开设计软件却不知从何下手,勉强拼凑出来的效果又总觉得差点意思。要么太过花哨显得不够庄重,要么过于简陋显得敷衍。其实高级感并不难,关键…...

文件夹的修改日期可以改吗?分享你三个修改方法

在电脑文件管理中,系统不支持直接修改文件夹的「修改时间」,但日常整理文件、统一项目时间戳、还原备份文件夹时间、办公归档时,经常需要自定义修改这个属性。本文给大家整理了3 种实用方法:第一种是汇帮批量重命名工具&#xff0…...

FreeRTOS 工程化要点:任务划分、优先级设计与 CPU 占用率监控

大家好,我是杂烩君。 今天我们来简单分享:FreeRTOS任务怎么拆、优先级怎么配、CPU 占用怎么看。1. 任务划分原则 1.1 单一职责:一个任务只干一件事 把"串口接收 数据解析 指令执行 结果反馈"全塞一个任务,解析环节一…...

网站设计:抓住这3点细节,用户体验感飙升!

网站制作要不要做得那么细呢?实际上,当我们发现很多网站制作得很优秀时,怎么看都不知道是如何做好的,但就是感觉不错,实际上这就体现在了制作网站细节上。很多时候设计网站往往容易忽视这三个细节:1、网页图…...

V821 DISP 显示驱动流程分析

文章目录1、前言2、环境介绍3、大致流程4、程序阅读5、总结1、前言 在全志 V821 下调试 RGB 屏幕时,因为一直创建不出 fb 节点,这里记录一下当时阅读显示驱动框架的过程。仅供参考。 2、环境介绍 sdk:V821 tina sdk v1.3 3、大致流程 初…...

实验室服务器远程访问终极方案:SSH 反向隧道 + systemd 自动重连

🚀 实验室服务器远程访问终极方案:SSH 反向隧道 systemd 自动重连适用于: 没有公网 IP 的实验室服务器想用 VSCode / SSH / Jupyter 远程开发希望稳定、自动重连、开机自启🧠 一、问题背景 在很多实验室环境中: GPU 服…...

赋能智能体大脑:在快马平台中集成AI模型实现高级对话能力

在探索AI辅助开发的过程中,我发现智能体的核心能力很大程度上取决于其"大脑"——也就是背后支撑决策的AI模型。最近在InsCode(快马)平台实践了一个很有意思的项目:如何为智能体集成AI模型来实现高级对话功能。整个过程让我深刻体会到&#xff…...

OpenClaw 局域网访问配置文档

OpenClaw 局域网访问配置文档 概述 本文档详细说明了如何配置 OpenClaw 以允许局域网内的其他设备访问,包括所有相关配置参数的作用和说明。 当前配置状态 网关服务信息 服务端口: 18789 绑定模式: lan (局域网访问) 认证方式: password (密码认证) 访问密码: xxxxxx 详细…...

Redis 内存淘汰与过期策略

引言Redis 作为内存数据库,内存资源有限,必须妥善处理内存占用问题。本文梳理两种核心机制:淘汰策略决定内存达到上限时如何移除数据,涵盖 noeviction、LRU、LFU 等多种算法及其实现细节;过期策略(惰性删除…...

高纯水系统如何保障锂电池生产良率?

在锂电池制造过程中,生产用水纯度直接关联产品性能与安全。随着新能源汽车与储能产业快速发展,行业对电池一致性与稳定性的要求持续提升,超纯水已成为核心制程环节的关键辅材。一、锂电池生产用水标准 锂电池生产涉及正负材料制备、浆料调配、…...

[MediaForge] 音频技术深度解析(五):常见问题与快速解决

目录 问题排查方法论 音频采集常见问题 音频重采样常见问题 音频编码常见问题 音频封装常见问题 端到端完整流程问题 快速定位工具集 AI 辅助排查指南 1. 问题排查方法论 1.1 通用排查流程 ┌───────────────────────────────────────…...

突破性分子动力学自由能计算工具:gmx_MMPBSA技术深度解析与实战指南

突破性分子动力学自由能计算工具:gmx_MMPBSA技术深度解析与实战指南 【免费下载链接】gmx_MMPBSA gmx_MMPBSA is a new tool based on AMBERs MMPBSA.py aiming to perform end-state free energy calculations with GROMACS files. 项目地址: https://gitcode.co…...

3分钟掌握绝地求生压枪黑科技:罗技鼠标宏终极指南

3分钟掌握绝地求生压枪黑科技:罗技鼠标宏终极指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中AKM的后坐力而…...

2026海雅达HDT500手持终端PDA“12米远距扫描”应用案例:造纸厂原纸立库高层纸卷条码采集应用

标准工业原纸卷重达2吨、宽幅近2.8米,在12-15米高的原纸仓库中堆垛高达8-10米。高空扫码怎么破? 传统PDA扫码距离仅1米,难道必须冒生命危险爬上纸堆?海雅达HDT500的12米扫描头如何实现“降维打击”? 如何利用海雅达H…...

通过 C# 将 RTF 格式转换为 Word 文档

在 .NET 项目中处理文档格式转换时,RTF 转 Word 是一个常见的需求。RTF(Rich Text Format)作为一种跨平台的文档格式,常被用作中间载体,而最终交付时往往需要转换为更通用的 Word 格式(.doc 或 .docx&#…...

水质溶解氧在线监测仪:实时监测与数据记录解析

水质溶解氧在线监测仪是一款专注于水体溶解氧与水温监测的专业设备,可快速记录水体关键参数,同时支持扩展多种水质参数传感器,能根据不同使用需求灵活组合配置。设备内置存储功能,可留存历史监测数据与报警记录,还支持…...

家用混动SUV舒适度技术科普入门:从实测看核心技术要点

在家用混动SUV的日常使用中,接送孩子上下学、家庭短途出行是最高频的场景,而“舒适度”并非单纯的主观感受,而是一套涵盖空间设计、座椅工程、材质工艺、座舱适配及动力平顺性的综合技术体系。对于有儿童乘坐需求的家庭而言,舒适度…...