传址与传值

简介: 传址与传值

这里将讲述传址与传值的区别,先见下图。
image.png
这是传值的过程,我们明明把a,b作为实参传过去了。可以看到,交换后的a,b并没有达到我们的预期。为什么会这样呢?其实是因为,传值的时候,形参是临时创建的,在执行完swap函数后,他们又自动销毁了,从而导致a,b的值并没有交换。如果想要改变实参的值,我们就需要进行传址,而不是传值。见下图
image.png
我们通过把a和b的地址传给了形参,形参就能通过地址,找到a,b,以此来改变a和b的值。此时我们的实参就改为&a和&b,注意swap函数的形参类型是int*,这样就能交换a与b的值啦。

总结:传值:形参是实参的一份拷贝,函数运行起来后,实参是实参,形参和实参没有任何关联,改变形参时,不会对实参造成影响。

       传址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此,对形参解引用后的内容进行修改,改变的就是实参。
目录
相关文章
|
Java 数据库连接 容器
常见的几种内存泄漏情况和示例
常见的几种内存泄漏情况和示例
239 0
|
NoSQL Java Redis
Springboot从2.x升级到3.x以后redis默认配置调整
Springboot从2.x升级到3.x以后redis默认配置调整
1125 0
|
Android开发 iOS开发 Windows
Airtest:各平台的剪切板功能汇总
Airtest:各平台的剪切板功能汇总
170 0
|
安全
BurpSuite插件 -- Struts2-RCE(文字版)
BurpSuite插件 -- Struts2-RCE(文字版)
170 0
|
存储 自然语言处理 Java
Elasticsearch写入优化
【10月更文挑战第3天】Elasticsearch:从写入原理谈写入优化
324 2
|
Python
用python进行视频剪辑源码
这篇文章提供了一个使用Python进行视频剪辑的源码示例,通过结合moviepy和pydub库来实现视频的区间切割和音频合并。
306 2
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
540 2
|
12月前
|
移动开发 前端开发 JavaScript
HTML
【10月更文挑战第14天】HTML
125 4
|
11月前
|
安全 测试技术 API
构建高效RESTful API:后端开发的艺术与实践####
在现代软件开发的浩瀚星空中,RESTful API如同一座桥梁,连接着前端世界的绚丽多彩与后端逻辑的深邃复杂。本文旨在探讨如何精心打造一款既高效又易于维护的RESTful API,通过深入浅出的方式,剖析其设计原则、实现技巧及最佳实践,为后端开发者提供一份实用的指南。我们不深入晦涩的理论,只聚焦于那些能够即刻提升API品质与开发效率的关键点,让你的API在众多服务中脱颖而出。 ####
116 0
|
传感器 存储 数据采集
振弦采集仪是岩土工程监测中测量土层的沉降和水平变形
振弦采集仪是岩土工程监测中常用的一种测量设备,主要用于测量土层的沉降和水平变形
振弦采集仪是岩土工程监测中测量土层的沉降和水平变形