深圳学习c语言

237人已阅读 2017-12-27 09:29:01
导读 因为int数据所有存放的数据范围是有限的,如果a+b的值大于int类型的数据范围,那么就会出现数据溢出的情况。那么还有没有其他方法来交换变量a,b的值呢?
计算机IT

新闻详情

2017-12-27 09:29:01

深圳学习c语言

  提到交换两个变量的值,一般对编程有所了解的人最先想到的就是借助于一个中间变量。
  假设现在有两个变量
  int a=3;int b=4;
  那么借助中间变量的交换代码如下:
  int tmp=a;//tmp=3
  a=b;//a=4
  b=tmp;//b=3
  如果不借助中间变量,怎么去交换两个变量的值呢?
  这里先给大家介绍一种方式,代码如下:
  a=a+b;//a=7
  b=a-b;//b=3
  a=a-b;//a=4
  这种方法也实现了变量a,b值的交换,思考一下,上面这种方法有什么缺陷吗?
  对,有缺陷!!!
  为什么呢?
  因为int数据所有存放的数据范围是有限的,如果a+b的值大于int类型的数据范围,那么就会出现数据溢出的情况。
  那么还有没有其他方法来交换变量a,b的值呢?
  你又猜对了,有!!!请看如下代码:
  a=a^b;
  b=a^b;
  a=a^b;
  第三种方式,可以正确交换变量a,b的值,既不用借助于中间变量,又不会发生数据溢出的情况,所以小伙伴们,你们明白了吗?
上一篇: 深圳iOS应用培训 下一篇: 深圳计算机c语言培训

相关文章

推荐课程

查看全部课程
ITjob(远标教育)

ITjob(远标教育)

龙华校区

查看全部校区 进入官方主页