ホームページ  >  記事  >  バックエンド開発  >  【C言語】変数の値を簡単に交換する方法を教える5つのヒント

【C言語】変数の値を簡単に交換する方法を教える5つのヒント

little bottle
little bottle転載
2019-04-27 11:15:283624ブラウズ

C言語では2つの変数の値を交換するという操作がよく使われますが、一時変数を使わずに2つの変数の値を交換する方法などの質問も多くいただきます。全部で5つの方法をまとめていますので、ぜひ読んでみてください。

1. 一時変数法

方法説明: 一時変数法を中間遷移として使用する、最もシンプルで誰もが思いつきやすい方法です。さまざまなアプリケーションがあり、熟練する必要があります。

#include<stdio.h>
int main(void){
     int a=1,b=2,tmp;     
     tmp =a;     
     a=b;     
     b=tmp;     
    printf("%d %d",a,b);
     return 0; 
}

2. 加減算交換法

方法説明: その名の通り、数学における加減算法を利用して交換を行うもので、まず a b の結果を一時的に保存します。変数 a を渡し、これを渡します 交換された b は、元の b から変更された a を減算することで取得できますが、欠点は、 a b の結果が範囲外になる可能性があることです。

#include<stdio.h>
int main(void){     
       int a=1,b=2;
     a = a + b;
     b = a - b;
     a = a - b;     
     printf("%d %d",a,b);     
     return 0;
 }

3. 乗算と除算の交換方法

方法の説明: この方法は加算と減算に似ており、加算と減算が乗算と除算に置き換えられます。乗算を使用すると、加算よりも境界を越えやすくなります。使用には注意が必要です。

#include<stdio.h>
int main(void){     
       int a=1,b=2;
     a = a * b;
     b = a / b;
     a = a / b;     
     printf("%d %d",a,b);     
     return 0;
 }

4. , a^b^b=aなのでスムーズにやりとりが完了します この方法は完璧で国境を越えた問題もありません。

#include<stdio.h>
int main(void){    
 int a=1,b=2;     
 a = a ^ b;     
 b = a ^ b;     
 a = a ^ b;    
 printf("%d %d",a,b);    
 return 0; }

5. シフト交換方式

方式の説明: この方式は一般的には使用されません. 原理は int 型の a の元の値を上位 16 ビットと下位 16 ビットに分割することです. , これは、ターンオーバー用の一時記憶域の 16 ビット追加に相当します。欠点は、a または b が 16 ビットを超えると、この方法が失敗することです。この方法はより複雑でエラーが発生しやすいため、次の用途にはお勧めできません。みんなが使えるように。

#include<stdio.h>
int main(void){     
int a=1,b=2;
     a <<= 16;
     a |= b;
     b = a >> 16;
     a = a & 0xffff;     
     printf("%d %d",a,b);     
     return 0;
 }

考察の要約:

実際、これら 5 つのメソッドは基本的に 3 つのカテゴリに分類されます。1 つは一時変数、もう 1 つは加算、減算、乗算、除算の演算、そして 3 つ目はビット演算です。それぞれに長所と短所があるため、個人的には一時変数方式と XOR 交換方式を使用することをお勧めします。一時変数方式は他の場所でも広く使用されています。ここで焦点を当てましょう。ここで終了します。ありがとうございます。」みんな。


関連チュートリアル:

C 言語チュートリアル

以上が【C言語】変数の値を簡単に交換する方法を教える5つのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。