05-函数传值VS传引用

news2024/10/1 14:44:28

函数传值

一、没法改变值的方式:

一个变量拷贝到另一个变量, 这种形式的函数调用被称为: 传值调用

局部变量的生命周期在函数的运行期间会一直存在.

void Increment(int a)//假设一个 x(只是为了验证实参会被映射到形参这件事情),a的值会被拷贝到x
{
	a = a + 1; //1. x = x + 1  值为11 //a映射到x, a的值拷贝到x
    //2.执行完毕后Increment()函数在内存上的栈针空间被清除,继续执行main函数中的printf语句
	printf("Address of variable a in increment = %d\n", &a);
}

int main(int argc, const char* argv[])
{
	int a;
	a = 10;
	Increment(a); 
	printf("Address of variable a in main = %d\n", &a);
	printf("a = %d", a);
}

二、可以改变值的方式(传引用):

传变量的地址--> 解引用并且做一些操作 就叫做传引用(用指针传值的方式)

传引用的好处: 可以节省内存空间

void Increment(int *p)
{
	*p=(*p)+1;
}

int main(int argc, const char* argv[])
{
	int a;
	a = 10;
	Increment(&a);
	printf("a = %d", a);
}

程序一开始执行之后调用到内存,中的执行步骤: 堆和栈的概念:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2182548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【d57】【sql】1661. 每台机器的进程平均运行时间

思路 一方面考察自连接,另一方面考察group by 这里主要说明 group by 用法: 1.在 SQL 查询中,GROUP BY 子句用于将结果集中的行分组,目的通常就是 对每个组应用聚合函数(如 SUM(), AVG(), MAX(), MIN(), COUNT() 等…

如何理解业务系统的复杂性

鹅厂万人热议|如何理解业务系统的复杂性?-腾讯云开发者社区-腾讯云 腾小云导读 业务系统复杂性一直是令开发者头痛的问题。复杂的不是增加一个需求需要耗费多少时间,而是在增加一个需求后带来的蝴蝶效应:其它功能会不会受到影响、…

MES数据的集成方式

为了实现与其他关键系统的数据共享和协同工作,不同的集成方式应运而生。MES系统与其他系统的常见集成模式,包括封装接口调用模式、直接集成模式、数据聚合模型、中间件集成模式以及XML的信息集成模式等。 1. 封装接口调用模式 封装接口调用是一种常见的…

防反接电路设计

方案1 串联二极管, 优点:成本低、设计简单 缺点:损耗大,P ui 方案2 串联自恢复保险丝 当电源反接的时候,D4导通,F2超过跳闸带你留,就会断开,从而保护了后级电路 方案3 H桥电路…

修改ID不能用关键字作为ID校验器-elementPlus

1、校验器方法 - forbiddenCharValidator const idUpdateFormRef ref(null); const forbiddenCharValidator (rule, value, callback) > {const forbiddenCharacters [as,for,default,in,join,left,inner,right,where,when,case,select];for (let forbiddenCharacter o…

劳动与科技、艺术结合更好提高劳动教育意义

在中小学教育中,劳动教育是培养学生基本生活技能和劳动习惯的重要环节。但当代的劳动教育不在单纯的劳动,而是劳动技能的提升与学习,通过学习劳动技能与实践活动,强化劳动教育与其他课程的融合,学生深刻理解劳动的意义…

python如何判断图片路径是否存在

1、在向文件夹中保存数据前,先判断该文件夹(路径)是否存在。 save_path /root/.../image/result if not os.path.exists(save_path):os.makedirs(save_path) 本来路径里只有到image文件夹的,执行完后会自动在image下创建result文件夹。 2、在打开某些图…

滑动窗口->dd爱框框

1.题目: 2.题解: 2.1为什么用滑动窗口优化: 因为元素都是大于0的 所以:当找到大于等于x的值时,right可以不用返回 两个指针都往后走;因此可以使用滑动窗口优化暴力解法 2.2:滑动窗口具体使用步…

骨传导耳机哪个品牌好用?盘点闭眼入都不踩雷的五大爆款机型!

骨传导耳机是智商税还是真有用?哪款骨传导耳机更值得购买?骨传导耳机作为市场中非常热门的机型,相信很多人都想入手一款,但面对市面鱼龙混杂的耳机品牌,往往不知道从何下手,不过市场重确实存在不少劣质产品…

ubutun nginx 安装和解决端口占用问题

目录 一、删除已有nginx 二、安装nginx 三、端口占用问题 分析问题 解决方法:更换默认端口 nginx是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(I…

Sqoop实战-- Sqoop的Job任务、增量导入、数据格式转换与Lombok的使用指南

数据传输是任何数据驱动型组织的关键时刻。Apache Sqoop 在促进关系型数据库和Hadoop之间的高效数据传输方面表现出色,使其成为大数据工作流程中不可或缺的工具。本文将详细介绍如何使用Sqoop执行Job任务以及进行增量导入,如何在HDFS上指定数据存储格式&…

031集——文本文件按空格分行——C#学习笔记

如下图,读取每行文本,每行文本再按空格分开读取一个字符串,输出到另一个文本: CAD环境下,代码如下: using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using System; using Sys…

如何使用ssm实现白云会议管理系统+vue

TOC ssm741白云会议管理系统vue 第1章 绪论 1.1 选题动因 到现在为止,互联网已经进入了千家万户,最普通的平民百姓也有属于自己的智能设备,计算机各种技术的储备也是相当的丰富,并且实现也是没有难度,各行各业&…

Gpt4.0最新保姆级教程开通升级

如何使用 WildCard 服务注册 Claude3 随着 Claude3 的震撼发布,最强 AI 模型的桂冠已不再由 GPT-4 独揽。Claude3 推出了三个备受瞩目的模型:Claude 3 Haiku、Claude 3 Sonnet 以及 Claude 3 Opus,每个模型都展现了卓越的性能与特色。其中&a…

【Python报错已解决】TypeError: an integer is required (got type bytes)

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

无人机培训机构配套教学无人机技术详解

无人机培训机构配套的教学无人机技术,是一个涉及多学科交叉、技术密集型的领域。以下是对该技术的详细解析: 一、无人机技术概述 无人机技术是一个涵盖航空工程、电子工程、计算机科学、材料科学和人工智能等多个学科的综合性领域。其核心在于实现无人…

LP3718BSL封装SOP8/12W隔离开关电源芯片

概述: LP3718BSL 是一款高度集成的隔离型适配器和充电器的自供电PSR控制芯片,外围设计极其简单。 LP3718BSL通过外置电阻,可调原边峰值电流,再 通过变压器原副边匝比来设置输出恒流点;通过设 定 FB 上偏电阻和下偏电阻来设置输出恒…

【MySQL】数据库的介绍以及数据库基础

目录 🌳介绍 🎄数据库操作 🚩显示当前数据库 🚩创建数据库 ​编辑🚩使用/选中 数据库 🚩删除数据库 🌴常用的数据类型 🚩数值类型 🚩字符串类型 &#x1f6a9…

Java项目实战II基于Java+Spring Boot+MySQL的大创管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 在当前创新创业氛围浓厚的背景下,大学生创新创业项目(简称“大创”&#xff0…

足球青训俱乐部后台:Spring Boot开发策略

4 系统设计 4.1 系统架构设计 B/S系统架构是本系统开发采用的结构模式,使用B/S模式开发程序以及程序后期维护层面需要的经济成本是很低的,用户能够承担得起。使用这样的模式开发,用户使用起来舒心愉悦,不会觉得别扭,操…