- 13
- 0
- 约2.99千字
- 约 7页
- 2023-06-29 发布于安徽
- 举报
-
. z.
变量交换的几种常见方法
前几天发现了一个问题:有人告诉我,要进展变量交换,就必须引入第三变量!
假设我们要交换a和b变量的值,如果写成
int a=5,b=10;
a=b;
b=a;
则结果就是两个都是10,理由不言而喻。
所以就应该引入第三变量,在a的值被覆盖之前就把a的值保存好。
int a=5,b=10,tmp;
tmp=a;
a=b;
b=tmp;
这样,就要引入了第三个变量,然而,我们能不能不引入第三变量来实现变量交换呢?
答案自然是肯定的,首先我们可以这样设想,如果a的值被覆盖了,则就没法知道b应该放什么值了,
所以,我们要保存a的值,因此我们可以把a和b的值合起来,放在a里,再把合起来的值分开,分别放到b和a中:
int a=5,b=10;
a=a+b; //a=15,b=10
b=a-b; //a=15,b=5
a=a-b; //a=10,b=5
但是这样做有一个缺陷,假设它运行在vc6环境中,则int的大小是4 Bytes,所以int变量所存放的最大值是2^31-1即2147483647,如果我们令a的值为2147483000,b的值为1000000000,则a和b相加就越界了。
事实上,从实际的运行统计上看,
您可能关注的文档
最近下载
- 幼儿园教师教研活动课件PPT--集体教学活动中有效提问与深度回应.pptx
- 管理学原理(中级)(自考)课件 白瑷峥 第7--12章 组织--- 控制.pptx
- 工业网络与组态技术全套教学课件.pptx
- 宣贯培训(2026年)《GBT 33942-2017特种设备事故应急预案编制导则》.pptx VIP
- 水利工程压力钢管安装方案.docx VIP
- 储能产业研究白皮书2026(摘要版).pdf VIP
- SHT102-2006钢筋混凝土矩形排水沟及盖板(2.41MB).docx VIP
- 2016秋-舌尖上的微生物霉菌篇.PDF VIP
- 新未来大学英语 综合教程3A教学课件Unit 1 Objectives+warming up.pptx VIP
- 蒙娜丽莎课件PPT.pptx VIP
原创力文档

文档评论(0)