Maison >développement back-end >Tutoriel C#.Net >[Langage C] 5 astuces pour vous apprendre à échanger facilement des valeurs de variables

[Langage C] 5 astuces pour vous apprendre à échanger facilement des valeurs de variables

little bottle
little bottleavant
2019-04-27 11:15:283663parcourir

L'opération d'échange des valeurs de deux variables est souvent utilisée en langage C. De nombreuses personnes se posent également des questions telles que comment échanger les valeurs de deux variables sans utiliser de variables temporaires. résumé ici. Il y a 5 méthodes au total. J'espère que vous gagnerez tous quelque chose en le lisant.

1. Méthode des variables temporaires

Explication de la méthode : Utiliser la méthode des variables temporaires comme transition intermédiaire, c'est la méthode la plus simple et la plus facile à laquelle tout le monde peut penser. est utilisé dans diverses applications et doit être maîtrisé avec compétence.

#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. Méthode d'échange d'addition et de soustraction

Explication de la méthode : Comme son nom l'indique, utilisez la méthode d'addition et de soustraction en mathématiques pour effectuer l'échange. Tout d'abord, enregistrez temporairement le résultat de. a+b dans la variable a , puis le b échangé peut être obtenu en soustrayant le a modifié et le b original. L'inconvénient est que le résultat de a+b peut être hors limites.

#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. Méthode d'échange de multiplication et de division

Explication de la méthode : Cette méthode est similaire à l'addition et à la soustraction, c'est-à-dire que l'addition et la soustraction sont remplacées par la multiplication et la division. est que parce que la multiplication est utilisée, elle est plus compliquée que l'addition. Il est facile de franchir la ligne et doit être utilisée avec prudence.

#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. Méthode d'échange XOR

Explication de la méthode : Utiliser intelligemment l'opération XOR pour l'échange Cette méthode profite principalement des caractéristiques de XOR. d'abord. Pour a, car a^b^b=a, l'échange peut être effectué en douceur. Cette méthode est parfaite et il n'y a pas de problème transfrontalier.

#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. Méthode d'échange par décalage

Explication de la méthode : Cette méthode n'est pas couramment utilisée. Le principe est de diviser la valeur du type int d'origine a en 16 bits élevés et faibles. 16 bits, ce qui équivaut à 16 bits supplémentaires d'espace de stockage temporaire pour le chiffre d'affaires. L'inconvénient est que si a ou b dépasse 16 bits, cette méthode échouera. Cette méthode est plus compliquée et sujette aux erreurs, elle n'est donc pas recommandée. pour que tout le monde puisse l'utiliser.

#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;
 }

Résumé de la réflexion :
En fait, ces cinq méthodes sont essentiellement divisées en trois catégories, l'une est celle des variables temporaires, l'autre est celle des opérations d'addition, de soustraction, de multiplication et de division, et la troisième est celle des bits opérations. En raison de leurs avantages et inconvénients respectifs, je vous recommande personnellement d'essayer d'utiliser la méthode des variables temporaires et la méthode d'échange XOR, qui est également largement utilisée dans d'autres endroits. Concentrons-nous sur sa maîtrise. . Tout le monde.

Tutoriels associés : Tutoriel langage C

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:A quoi sert C# ?Article suivant:A quoi sert C# ?