IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++中函数传值,传引用,传指针的区别 -> 正文阅读

[C++知识库]C++中函数传值,传引用,传指针的区别

函数的调用就是在内存中开辟一块空间来保存被调函数的临时数据,当被调用函数结束后,该内存就会被释放。
指针其实也是一个变量,只是保存的是一个地址,而变量保存的值。

传值

实参拷贝一份数值给形参,在传递完之后,形参与实参就没有联系了。因此形参在被调用函数中的修改将不会被影响到实参。

传指针

指针的传递与值的传递相差不大,使用拷贝的方式(将数据的地址(指针)拷贝一份给到形参)然后系统会开辟一个空间来保存这个地址,因此可以在被调函数中修改该地址(指针),当指针被修改后指向的就不是实参了。
之所以传指针能修改实参中的值,是因为在传进来的地址(指针)还没有被修改的时候,指向的是实参的值。
在这里插入图片描述
如上图所示,在被调函数中开辟一个空间保存是形参(指针)的拷贝值,因此如果没有修改被调函数保存的地址(指针)01003H的时候,还是可以修改指向的实参(a)的值,但是在被调函数中修改69877H中的地址值后,就不再指向a了,如果再修改指向的值的话就不会修改实参(a)的值。
因此为了保证形参中的指针不被改变,应该在形参列表中添加const比如如下的情况:

void func(int *const a)

传引用

引用:

  • 申明的时候就被定义,而且只能呗定义一次,之后就不能进行修改;
  • 引用就是起别名
    博客中介绍到
    引用的传递可以理解为没有为这个形参开辟空间,因为在函数调用的时候形参的地址空间和实参的地址空间一样,因此在修改形参的时候就是在修改实参的值。
    或者可以理解为在使用引用传递的时候,实参就相当于原函数和被调函数的共享数据(或者静态数据)。
    更详细的解释见
    以上为个人的见解,如有错误欢迎指正!!!!
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:30:34  更:2022-02-09 20:32:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:04:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码