教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

輕松學(xué)習(xí)C語言系列-交換兩個變量值的多種方式

更新時間:2016年03月29日17時06分 來源:傳智播客 瀏覽次數(shù):

  提到交換兩個變量的值,一般對編程有所了解的人最先想到的就是借助于一個中間變量。

  假設(shè)現(xiàn)在有兩個變量

  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

  這種方法也實現(xiàn)了變量a,b值的交換,思考一下,上面這種方法有什么缺陷嗎?

  對,有缺陷!!!

  為什么呢?

  因為int數(shù)據(jù)所有存放的數(shù)據(jù)范圍是有限的,如果a+b的值大于int類型的數(shù)據(jù)范圍,那么就會出現(xiàn)數(shù)據(jù)溢出的情況。

  那么還有沒有其他方法來交換變量a,b的值呢?

  你又猜對了,有!!!請看如下代碼:

  a = a^b;

  b = a^b;

  a = a^b;

  第三種方式,可以正確交換變量a,b的值,既不用借助于中間變量,又不會發(fā)生數(shù)據(jù)溢出的情況,所以小伙伴們,你們明白了嗎?

0 分享到:
和我們在線交談!