变量交换的几种常见方法.docxVIP

  • 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相加就越界了。 事实上,从实际的运行统计上看,

文档评论(0)

1亿VIP精品文档

相关文档