值传递和址传递

值传递

上面的代码是想要交换x,y的值,把x,y传递给swap函数之后,执行下面的操作:

在swap中a和b交换了,但是和x,y没有关系,所以x,y在main中不会变。

址传递

下面再看把x,y的地址&x,&y传给swap,swap使用两个指针变量接受它们。

swap中的*a,*b是对地址的解引用,即*a就是x,*b就是y。所以交换了x和y的值

下面是具体步骤:

交换两个变量的指针不会改变变量的地址,也不会改变变量的值

再看交换x和y的指针,这个交换的是a,b指向的地址,并没有交换 x和y的值

想要交换x和y的地址是不能实现的。因为这些变量通常存储在栈(stack)或堆(heap)的固定位置,并且它们的地址是由编译器或运行时环境自动管理的。

引用:交换变量的值

下面是使用引用的方法交换两个变量的值,

把x,y传给swap,swap使用&a,&b接受。引用就相当于形参通过别名的方式操作实参。

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

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

相关文章

2024FIC决赛

容器密码:2024Fic~Competition~Finals杭州&Powered~By~HL! 案件背景: 2023年3月15日凌晨,受害人短视频平台上看到一段近期火爆的交通事故视频,留言后有人通过私信联系,称有一个赚大钱的机会,该人自称李某,提议让…

软件工程期末复习题

目录 选择 判断 选择 下列说法中正确的是 ( B )。 A、20 世纪50 年代提出了软件工程的概念摇 B、20 世纪60 年代提出了软件工程的概念 C、20 世纪70 年代出现了客户端/ 服务器技术 D、20 世纪80 年代软件工程学科达到成熟 软件危机的主要原因是 ( D )。 A、软件工具落后…

基于STM32移植U8g2图形库——OLED显示(HAL库)

文章目录 一、U8g2简介1、特点2、U8g2的使用步骤 二、I2C相关介绍1、I2C的基本原理2、I2C的时序协议 三、OLED屏的工作原理四、汉字点阵显示原理五、建立STM32CubeMX工程六、U8g2移植1、U8g2源码2、移植过程 七、代码编写1、参考博主实现的U82G的demo例程(1&#xf…

【Linux内核】伙伴系统算法和slab分配器(1)

【Linux内核】伙伴系统算法和slab分配器(1) 目录 【Linux内核】伙伴系统算法和slab分配器(1)伙伴系统(buddy)算法伙伴系统算法基本原理内存申请内存回收 接口函数源码分析内存分配接口物理内存释放接口规范…

基于Wireshark实现对FTP的抓包分析

基于Wireshark实现对FTP的抓包分析 前言一、虚拟机Win10环境配置二、FileZilla客户端的安装配置下载FileZilla客户端安装FileZilla 三、FileZilla Server安装下载FileZilla Server安装 四、实现对FTP的抓包前置工作实现抓包完成抓包 前言 推荐一个网站给想要了解或者学习人工智…

Setapp:只需一次订阅,即可获得 240 款+ Mac 软件

为一项任务寻找合适的应用程序是一项相当艰巨的任务。过去,最好的办法要么是花费宝贵的时间搜索可靠的评论,要么就是相信无论安装什么软件都能完成任务。 如果你是 Mac 用户,那么 Setapp 将让这一问题成为过去。无需在需要时下载单个程序&am…

vue之一键部署的shell脚本和它的点.bat文件、海螺AI、ChatGPT

MENU 前言vite.config.ts的配置deploy文件夹的其他内容remote.shpwd.txtdeploy.bat 前言 1、在src同级新建deploy.bat文件; 2、在src同级新建deploy文件夹,文件夹中新建pwd.txt和remote.sh文件; 3、配置好后,直接双击deploy.bat文…

鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS

1、LFS文件系统结构体介绍 会分2部分来介绍结构体部分,先介绍LittleFS文件系统的结构体,然后介绍LiteOS-M内核中提供的和LittleFS相关的一些结构体。 1.1 LittleFS的枚举结构体 在openharmony/third_party/littlefs/lfs.h头文件中定义LittleFS的枚举、…

在线时钟python案例

试了一下用通义来编写一些代码,以下是一个在线时钟的样例,只要能运行python就可以使用。 以下是运行后的结果。 代码(复制可用) import tkinter as tk from time import strftimedef update_time():current_time strftime(&quo…

Postman使用教程(Postman详细图文教程)

本文讲解的是postman工具安装、postman安装教程、postman工具下载、postman使用教程。Postman使得得开发人员和测试人员能够更高效地与Web服务进行交互和调试。 Postman不仅支持常见的HTTP方法,如GET、POST、PUT、DELETE等,还提供了丰富的请求编辑功能&…

20240615给飞凌的OK3588-C开发板刷Rockchip原厂的Buildroot后的测试报告

20240615给飞凌的OK3588-C开发板刷Rockchip原厂的Buildroot后的测试报告: 【切记,由于没有替换DTS的,开发板发热量巨大!因此配备鼓风机进行加强散热了】 0、adb 默认没有 1、HDMI IN 4K 2024/6/15 20:32 4K全屏 2、HDMI OUT …

Redis原理篇——分布式锁

Redis原理篇——分布式锁 分布式锁是什么?分布式锁有哪些特性?分布式锁常用实现方式Redis 实现分布式锁一、简单的 Redis 锁二、带过期时间的 Redis 锁三、加上 Owner 的 Redis 锁四、Lua 脚本确保原子性 分布式锁是什么? 分布式锁是在分布式…

软件体系结构笔记(自用)

来自《软件体系结构原理、方法与实践(第三版)》清华大学出版社 张友生编著 1-8章12章 复习笔记 如有错误,欢迎指正!!!

HCIP认证笔记(填空)

1、为防止攻击者伪造BGP报文对设备进行攻击,可以通过配置GTSM功能检测IP报文中的TTL值的范围来对设备进行保护。如果某台设备配置了“peer x.x.x.x valid-ttl-hops 100",则被检测的报文的TTL值的有效范围为【(156),255】; 解析: peer {group-name | ipv4-address…

学习cel-go了解一下通用表达语言评估是什么

文章目录 1. 前言2. cel-go2.1 cel-go关键概念Applications(应用)Compilation(编译)Expressions(表达式)Environment环境解析表达式的三个阶段 3. cel-go的使用4. cel-go使用5. 说明6. 小结7. 参考 1. 前言 最近因为在项目里面实现的一个使用和||来组合获取字段值的功能有点儿…

MySQL员工练习

MySQL员工练习 1.数据显示 员工信息表emp: 字段:员工id,员工名字,工作岗位,部门经理,受雇日期,薪水,奖金,部门编号 英文名:EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,BONUS,DEPTNO 部门信息表dept: 字段:部门编号,部门名称,部…

自然抽样和平顶抽样

自然抽样和平顶抽样是两种信号处理和采样技术,它们在音频信号处理、信号重建以及数字信号处理中有着不同的应用。 1. 自然抽样(也称为理想抽样或无失真抽样):样值脉冲的幅度随原始信号m(t)的幅度而变; 自然抽样过程的…

Java算法常用技巧

一、排序 资料:https://blog.csdn.net/weixin_72499901/article/details/136592073 正排序 import java.util.Arrays;public class SortArray {public static void main(String[] args) {int[] citations {5, 3, 8, 2, 1, 4};// 打印原数组System.out.println(&…

windows10或者windows11怎么查看自己电脑显卡型号

win10系统: 右键单击任务栏后弹出菜单选择任务管理器 打开任务管理器后,点击性能查看左侧GPU0或者GPU1 如果有nvidia字样表示自己电脑有nvidia显卡,如果是AMD或者intel字样表示没有nvidia显卡。注意如果你有GPU0或者GPU1说明你电脑是双显卡&…

后端中缓存的作用以及基于Spring框架演示实现缓存

缓存的作用及演示 现在我们使用的程序都是通过去数据库里拿数据然后展示的 长期对数据库进行数据访问 这样数据库的压力会越来越大 数据库扛不住了 创建了一个新的区域 程序访问去缓存 缓存区数据库 缓存里放数据 有效降低数据访问的压力 我们首先进行一个演示 为了演示…