C言語における1次元配列において、要素を交換する方法

C 言語では、次のような方法で 1 次元配列の要素を入れ替えることができます:

  1. tempという一時変数を用意して、入れ替えたい2つの要素の値をそれぞれtempと配列の対応する位置に代入し、最後にtempの値をもう片方の位置に代入する。
void swap(int arr[], int i, int j) {
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}
  1. XORによる値の交換:排他的論理和演算子(XOR)により、2つの変数の値を一時変数なしで入れ替えることができます。
void swap(int arr[], int i, int j) {
    arr[i] = arr[i] ^ arr[j];
    arr[j] = arr[i] ^ arr[j];
    arr[i] = arr[i] ^ arr[j];
}
  1. 加算と減算を使用する:加算と減算を使用すると、追加の一時変数を使用せずに、2 つの変数の値を入れ替えることができます。
void swap(int arr[], int i, int j) {
    arr[i] = arr[i] + arr[j];
    arr[j] = arr[i] - arr[j];
    arr[i] = arr[i] - arr[j];
}

これらの 3 つのメソッドはすべて、1 次元配列の要素のスワップに使用できます。場面と要件に応じて適切なメソッドを選択してください。

bannerAds