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

值传递和址传递

值传递

上面的代码是想要交换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.lryc.cn/news/373271.html

相关文章:

  • 【three.js】自定义物体形状BufferGeometry
  • Mac 使用 Homebrew 安装 Python3
  • 汽车行驶中是怎么保障轴瓦安全的?
  • 洗地机哪款好?洗地机十大名牌排行榜
  • spark mllib 特征学习笔记 (二)
  • 湘潭大学软件工程数据库2(题型,复习资源和计划)
  • 第二十三节:带你梳理Vue2:Vue插槽的认识和基本使用
  • 父亲节马上到了-和我一起用Python写父亲节的祝福吧
  • winform 应用程序 添加 wpf控件后影响窗体DPI改变
  • Web前端开发素材:探索、选择与应用的艺术
  • LeetCode | 20.有效的括号
  • ceph scrub 错误记录
  • cs与msf权限传递,以及mimikatz抓取明文密码
  • Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式
  • 软件体系结构笔记(自用)
  • java安装并配置环境
  • 探索互联网寻址机制 | 揭秘互联网技术的核心,解析网络寻址
  • C语言学习笔记之结构篇
  • C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法
  • GDB:从零开始入门GDB
  • 服务器权限管理
  • 08 SpringBoot 自定定义配置
  • Java之3DES(Triple DES)加密计算(DESede/ECB/ZeroPadding)
  • 从0开发一个Chrome插件:项目实战——广告拦截插件
  • C++ 32 之 静态成员函数
  • Python闯LeetCode--第1题:两数之和
  • SSM情侣购物系统-计算机毕业设计源码02387
  • 09-Spark架构
  • 挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
  • 浅谈JavaScript中的作用域