首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C 語言交換兩變量值的四種方法:臨時變量、異或、加減法、標準庫

     編輯:關於C

方法一:臨時變量(最通用、可讀性最好)

int t = a; a = b; b = t;
// 或封裝為函數
void swap(int *a, int *b) { int t=*a; *a=*b; *b=t; }

方法二:異或交換(無臨時變量、整數適用)

a ^= b; b ^= a; a ^= b;
// 原理:x^x=0, x^0=x, 滿足交換律結合律

注意:a 和 b 不能指向同一內存,否則歸零。

方法三:加減法(無臨時變量、有溢出風險)

a = a + b; b = a - b; a = a - b;

風險:a+b 可能溢出導致未定義行為,**不推薦生產使用**。

方法四:C++ 引用 / C11 泛型選擇(現代寫法)

// C++
void swap(int &a, int &b) { int t=a; a=b; b=t; }
// C11 _Generic 實現類型泛型 swap 宏

總結建議

方法優點缺點推薦場景
臨時變量安全、通用、可讀額外 4/8 字節所有場景首選
異或無額外內存同地址歸零、僅整數嵌入式極度受限、面試
加減無額外內存溢出風險、浮點誤差教學演示,禁用生產
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved