Swap()函数的详细解析
Swap()函数的详细解析
在c\c++编程上,我们常会用到Swap()函数,实现其两个数据之间的调换。但由于Swap()函数的运用存在诸多限制,很容易造成数据对调失败。下面让我们进入Swap()函数的详细解析,避免我们日常在编程上出现小错误。
错误原因一
代码展示:
void Swap(int *p1,int *p2)
{int *temp;*temp=*p1;*p1=*p2;*p2=*temp;
}
代码分析:
对*temp赋值就是向一个未知的存储单元赋值,而这个未知的存储单元赋值中可能存储着一个有用的数据,这样就有可能破坏系统的正常工作状态。
错误原因二
代码展示:
void Swap(int x,int y)
{int temp;temp=x;x=y;y=temp;
}
代码分析:
由于“单向传递”的“值传递”方式,形参值的改变不能使实参的值随之改变。
错误原因三
代码展示:
void Swap(int *p1,int *p2)
{int *p;p=p1;p1=p2;p2=p;
}
代码分析:
c语言实参变量和形参变量之间的数据传递是单向的的“值传递”方式。用指针变量做函数参数时同样要遵循这一规则。不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参实参变量所指变量的值。
Swap()案例正确展示
代码展示:
#include<stdio.h>
int main()
{void Swap(int *p1,int *p2);int a,b;int *x,*y;x=&a;y=&b;printf("请输入a、b的值:\n");scanf("%d%d",&a,&b);printf("交换前a、b的值:\n");printf("a=%d b=%d\n",a,b);Swap(x,y);printf("交换后a、b的值:\n");printf("a=%d b=%d\n",a,b);return 0;
}
void Swap(int *p1,int *p2)
{int temp;temp=*p1;*p1=*p2;*p2=temp;
}
运行结果为:
总结
指针要点:
1、指针变量前面的“*”表示该变量为指针型变量。
2、在定义指针变量时必须指定基类型。
3、指向整型数据的指针类型表示为“int *”,读作“指向int的指针”或简称“int指针”。
4、指针变量中只能存放地址。
Swap()函数的详细解析相关推荐
- trim函数实现php,php trim函数的详细解析
本篇文章给大家带来的内容是关于php trim函数的详细解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 字符串的处理在任何程序中应该是最最常见的了吧.php 的trim函数就是用 ...
- VUE 钩子函数超详细解析
点击上方蓝色字体关注我吧 一起学习,一起进步,做积极的人! 前言 Vue 实例在被创建时,会经过一系列的初始化过程,初始化过程中会运行一些函数,叫做生命周期钩子函数,通过运用钩子函数,用户在可以在Vu ...
- java 对比函数_java中字符串比较函数和操作函数,详细解析
java编程语言中关于字符的内容也是极其丰富的,所以学习这方面的知识也十分重要的.今天就来为大家介绍一些与java字符串有关的内容,也就是java中字符串比较函数和操作函数,并为大家进行详细的解析,一 ...
- C语言--getchar()函数超详细解析(多维度分析,小白一看就懂!!!)
目录 一.前言 二.什么是getchar()函数 三.getchar()函数的返回类型与机制 四.连续单个字符串 (代码演示) 五.getchar()函数其他用法,实战演练(重点) (1)按照题目写出 ...
- c语言数据结构kmp中next计算,数据结构——关于KMP算法中next函数的详细解析
以前看到数据结构中字符串的模式匹配时,花了半天的时间,才把KMP算法中的next函数整明白了,结果过了几天在看到这时,只记得next[j+1]=next[j]+1,但是有时候能套公式正确算出,有时候就 ...
- c语言 freopen txt_C语言文件操作函数freopen详细解析
今天做USACO 用到了文件的操作. 之前做USACO只是格式化的些 写 freopen("xxx.in","r",stdin) 和"freop ...
- RC522详解(RC522arduino读写函数的详细解析)
RC522详解 前言 什么是RFID? 什么是RC522? 工作原理 M1卡存储结构 arduino IDE中的MFRC522.h的中文翻译 arduino和RC522通讯的案例 常用函数说明 写入函 ...
- Mixin 函数的详细解析
什么是Mixin 函数 在编程中,mixin 类似于一个固有名词,可以理解为混合或混入,通常不进行直译,本文也是同样. Mixin 函数 是指能够给对象添加属性或行为,并可以通过管道连接在一起的组合工 ...
- c语言的point函数,C语言中friend友元函数详细解析
C语言中friend友元函数详细解析 友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字frien ...
最新文章
- CC2541对AT24CXX系列存储器的支持
- 4j 禁止类输出日志_logback 日志详细讲解
- AcWing 1058. 股票买卖 V
- 十行代码实现十亿图片检索,我们把它开源了
- mysql多条件批量查询,且数据量大分批查询
- matlab对主动悬架的仿真分析,运用MatlabSimulink对主动悬架力学仿真与分析.doc
- 计算机软件工程自考,自考软件工程试题及答案2021年10月
- 信道估计(一):信道估计基础知识
- 树莓派3B+ WiFi 无线连接及配置
- 小米2s自带rec刷root_小米手机 解锁 Root 刷第三方ROM
- 减脂单吃全麦面包太乏味?全麦面包的N种吃法合集
- 多个div在同一行显示
- 微信小程序实现两数相加
- CX32l003 点亮0.96寸OLED屏幕
- E盘里多了个ppsds.pgf文件是怎么回事?
- 如何分享CSDN的博客
- 相关距离 matlab,你只有一个ArcGIS和Matlab的距离!
- 西伯利亚发现万年猛犸干尸
- 【虹科传感器小课堂】眨眼之见:通过气体检测进行热流量测量和校正
- python 残差图_python – 如何在显示matplotlib动画后删除Jupyter输出中的残差图?