首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言變量交換:為何 a=b; b=a; 錯誤及無臨時變量交換技巧

     編輯:程式設計綜合問答

錯誤分析


a = b; // a 變為 b 的值,原 a 值丟失
b = a; // b 再賦值為新 a (即原 b),結果 a=b=原 b

正確交換:引入臨時變量


temp = a;
a = b;
b = temp;

無臨時變量技巧(算術法)


a = a + b; // a = 和
b = a - b; // b = 原 a
a = a - b; // a = 原 b
  • 適用整數/浮點數,注意溢出風險(大數相加超範圍)。
  • 現代 CPU 臨時變量極廉價,**可讀性優先,直接用 temp**。

異或法(僅整數)


a ^= b;
b ^= a;
a ^= b;
  • 無溢出風險,但可讀性最差,編譯器優化下無性能優勢。

**工程上老誠實用 temp,面試知道算術/異或法即可。**

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved