指针传递和引用传递

2023-10-31

指针传递和引用传递


为了更好的理解指针和引用,下面介绍一下指针传递和引用传递。当指针和引用作为函数的参数是如何传值的呢?指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
引用传递过程中,被调函数的形式参数也作为局部变量在栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。

引用传递和指针传递是不同的,虽然它们都是在被调函数栈空间上的一个局部变量,但是任何对于引用参数的处理都会通过一个间接寻址的方式操作到主调函数中的相关变量。而对于指针传递的参数,如果改变被调函数中的指针地址,它将影响不到主调函数的相关变量。如果想通过指针参数传递来改变主调函数中的相关变量, 那就得使用指向指针的指针,或者指针引用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

指针传递和引用传递 的相关文章

  • Django框架(二十四:前后端分离之分页的设置和csrf认证的解决)

    前后端分离开发和混合开发的区别还是很大的 前后端分离我们需要遵循restful规范 先介绍什么是restful api规范 a 同一种数据的操作 只设置一个url路由 也就是根据请求方法来区分具体的处理逻辑 而不再设置多个增删改查的路由 1
  • table td高度设置无效_Bootstrap Blazor 组件介绍 Table(一)

    Bootstrap Blazor 是一套企业级 UI 组件库 适配移动端支持各种主流浏览器 已经在多个交付项目中使用 通过本套组件可以大大缩短开发周期 节约开发成本 目前已经开发 封装了 70 多个组件 欢迎有兴趣的同学试用 Gitee 开
  • pip 使用清华源加速下载包

    源 清华 https pypi tuna tsinghua edu cn simple 阿里云 http mirrors aliyun com pypi simple 中国科技大学 https pypi mirrors ustc edu c
  • TikTok运营做不起来?IP是关键

    作为跨境电商新蓝海 TikTok不断的加快自己推进电商业务的步伐 也吸引了越来越多的跨境商家入驻 但是很多人信心满满注册入驻后 却遇到了0播放 流量少 转化低的问题 Tiktok运营不起来 那你要注意了 使用的IP是关键 一 运营Tikto
  • warning: #188-D: enumerated type mixed with another type

    warning 188 D enumerated type mixed with another type 警告 188 D 枚举类型与另一类型混合 出现这个警告是变量类型不匹配的问题 我用函数封装去使能nvic中断 变量转换过程导致 原本
  • 【C++模块实现】

    文章目录 索引 1 日志级别LogLevel 1 1 实现 2 日志事件LogEvent 2 1 实现 3 日志格式化 3 1 实现 4 日志输出地 4 1 实现 5 日志器 5 1 实现 6 日志管理器 6 1 实现 7 宏定义 8 测试
  • html——标签分类

    标签分类 文件标签 构成html最基本的标签 html html文档的根标签 head 头标签 用于指定html文档的一些属性 引入外部的资源 title 标题标签 body 体标签 文本标签 和文本有关的标签 注释 lt 注释内容 gt

随机推荐