swap函数中的交换 【指针】 学习笔记
swap函数中的交换,主要是这三种情况
第一种
void swap(int *a, int *b)
{int temp = *a;*a = *b;*b = temp;}
表示的是把指针所指向的系统空间的值发生交换
所以这个函数交换主函数中也会改变
第二种
void swap(int *a, int *b)
{int *temp = a;a = b;b = temp;
}
这个函数中,交换的只是形参指针中指向
实参,系统空间都没发生变换 所以主函数中的值不会交换
第三种
void swap(int &a, int &b)
{int temp = a;a=b;b = temp;
}
这个函数中先是把地址传进去,表示跟主函数中的变量共用一个空间
所以这个值交换了就代表系统空间中的值交换了
所以这个主函数中的值肯定是会交换的
这里有一些易混淆的点
void swap(int *&a, int *&b)
{int *temp = a;a = b;b = temp;
}
这个我们可以看成是第二种情况,只是指针的指向发生变化
系统中的地址和空间没有发生变化
void swap(int *&x, int *&y)
{int temp = *y;*y = *x;*x = temp;
}
这个其实我们也可以看成第一种情况,把先是把地址传进去
然后是让指针指向的值,也就是系统的值发生交换
主函数中的值肯定是也会发生交换
其实吧,主要就是看系统里的那个系统空间的值有没有改变
如果有主函数中的值也就是系统里的值,会发生变化
以上都是个人对这个swap函数交换和指针的理解
这篇文章以互相学习为主,有什么错的还望告知,谢谢啦
swap函数中的交换 【指针】 学习笔记相关推荐
- r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...
- 数组存储与指针学习笔记(三)指针与数组
嵌入式C语言学习进阶系列文章 GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解 GUN C编译器拓展语法学习笔记(二)属性声明 GUN C编译器拓展语法学习笔记(三)内联函数.内建函数 ...
- 【C 语言】多级指针 ( 在函数中生成 二级指针 | 通过传入的 三级指针 进行间接赋值 )
文章目录 前言 一.在函数中生成 二级指针 ( 通过传入的 三级指针 进行间接赋值 ) 二.完整代码示例 前言 如果要 通过 函数形参 间接赋值 修改 nnn 级指针, 需要向函数中传入 n+1n + ...
- C++ 中 参数包 (typename ...) 学习笔记
C++ 中 参数包 (typename -) 学习笔记 本文所属地址 https://www.lucien.ink 起因 突然好奇 STL 的 std::tuple 是怎么实现不定参数的,遂搜了搜,发 ...
- 【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
文章目录 一.直接修改 和 间接修改 指针变量 的值 二.在函数中 间接修改 指针变量 的值 三.在函数中 间接修改 外部变量 的原理 一.直接修改 和 间接修改 指针变量 的值 直接修改 指针变量 ...
- 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)
数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一) 步骤: 1. 创建SILVERLIGHT应用程序 2. 创建LINQ TO SQL [注意序列化的问题 ...
- 函数中结构体指针作为形参修改指针地址
当函数的形参为结构体指针,但是在函数中不仅修改指针指向的值,而且修改指针指向的地址 以下可以改变主函数中a的值,但是a指向的地址不会发生改变 struct student {int aa;int bb ...
- web前端分享HTML5中的nav标签学习笔记
好程序员web前端分享HTML5中的nav标签学习笔记,nav标签全称navigation,顾名思义,是导航的意思.根据HTML5的相关标准定义如下: "A section of a pag ...
- OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC
OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...
最新文章
- JAVA 中equals()与==的区别
- 网站SEO优化中导入链接有哪些作用?
- 【Flutter】自定义 Flutter 组件 ( 创建自定义 StatelessWidget、StatefulWidget 组件 | 调用自定义组件 )
- 3个可以写进简历的京东AI NLP项目实战
- 虚拟运营商人工服务器,四大必想之事:倒闭、价格、网络
- python3.6安装cv2库_win10 +python3.6环境下安装opencv以及pycharm导入cv2有问题的解决办法...
- 改变TFS本地映射路径.
- java 反射覆盖方法,java – 确定一个方法是否覆盖使用反射的另一个?
- 解决Adobe Flash Player不是最新版本方法
- 高效记忆/形象记忆(13)110数字编码表 71-80
- HashMap排序题
- 硬盘格式化数据恢复的软件推荐
- 即时通讯软件会取代电子邮件吗?
- android实现蓝牙耳机的连接及列表的管理
- 【web开发 模拟ua调试】修改chrome浏览器的user agent
- php html 纯文本,php – 使用纯文本回退发送HTML简报
- 随手记安全吗?随手科技获选深圳市南山区“绿色通道”企业
- TikTok代运营丨怎么找到TikTok达人网红?
- python二维数组按照第一列排序_Python中二维数组按照某行或列排序的实现方法
- 前端优化系列之DNS预获取 dns-prefetch 提升页面载入速度