Opérateurs d'affectation en C

Bonjour à tous, futurs programmeurs ! Aujourd'hui, nous allons plonger dans le monde fascinant des opérateurs d'affectation en C. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code avant – je suis là pour vous guider à travers ce voyage étape par étape. À la fin de ce tutoriel, vous affecterez des valeurs comme un pro !

C - Assignment Operators

Qu'est-ce qu'un opérateur d'affectation ?

Avant de commencer, voyons ce qu'ont sont les opérateurs d'affectation. Pensez-y comme le signe égal (=) que vous avez utilisé en classe de mathématiques, mais avec des superpouvoirs ! Ils sont utilisés pour affecter des valeurs aux variables de vos programmes. Mais en C, ils peuvent faire beaucoup plus que des affectations simples.

Opérateur d'affectation simple (=)

Commençons par les bases – l'opérateur d'affectation simple. C'est la fondation de toutes les opérations d'affectation en C.

Comment cela fonctionne

L'opérateur d'affectation simple est représenté par le signe égal (=). Il prend la valeur de droite et l'affecte à la variable de gauche.

Voici un exemple simple :

int age;
age = 25;

Dans ce code, nous déclarons une variable entière appelée age, puis nous lui affectons la valeur 25. C'est aussi simple que ça !

Affectations multiples

Vous pouvez également chaîner les affectations. Regardons un exemple :

int x, y, z;
x = y = z = 10;

Ce code affecte la valeur 10 à toutes les trois variables : x, y et z. Il fonctionne de droite à gauche, donc d'abord z reçoit 10, puis y reçoit la valeur de z (qui est 10), et enfin x reçoit la valeur de y (qui est également 10).

Initialisation des variables

Vous pouvez également utiliser l'opérateur d'affectation lorsque vous déclarez des variables :

int hauteur = 180; // Déclarer et initialiser en une ligne
float pi = 3.14159;
char note = 'A';

C'est un excellent moyen de définir des valeurs initiales pour vos variables dès leur création.

Opérateurs d'affectation augmentés

Maintenant, augmentons notre niveau ! Les opérateurs d'affectation augmentés sont comme des raccourcis. Ils effectuent une opération et une affectation en un seul pas. Analysons-les un par un :

Affectation additionnelle (+=)

L'opérateur += ajoute l'opérande de droite à l'opérande de gauche et affecte le résultat à l'opérande de gauche.

int score = 10;
score += 5; // Équivalent à : score = score + 5;
printf("Score : %d\n", score); // Sortie : Score : 15

Affectation soustractive (-=)

L'opérateur -= soustrait l'opérande de droite de l'opérande de gauche et affecte le résultat à l'opérande de gauche.

int vies = 3;
vies -= 1; // Équivalent à : vies = vies - 1;
printf("Vies restantes : %d\n", vies); // Sortie : Vies restantes : 2

Affectation de multiplication (*=)

L'opérateur *= multiplie l'opérande de gauche par l'opérande de droite et affecte le résultat à l'opérande de gauche.

int puissance = 2;
puissance *= 3; // Équivalent à : puissance = puissance * 3;
printf("Niveau de puissance : %d\n", puissance); // Sortie : Niveau de puissance : 6

Affectation de division (/=)

L'opérateur /= divise l'opérande de gauche par l'opérande de droite et affecte le résultat à l'opérande de gauche.

float argent = 100.0;
argent /= 2; // Équivalent à : argent = argent / 2;
printf("Argent restant : %.2f\n", argent); // Sortie : Argent restant : 50.00

Affectation de modulo (%=)

L'opérateur %= calcule le reste de la division de l'opérande de gauche par l'opérande de droite et affecte le résultat à l'opérande de gauche.

int cookies = 10;
cookies %= 3; // Équivalent à : cookies = cookies % 3;
printf("Cookies restants : %d\n", cookies); // Sortie : Cookies restants : 1

Affectation ET bit à bit (&=)

L'opérateur &= effectue une opération ET bit à bit et affecte le résultat à l'opérande de gauche.

int a = 5; // Binaire : 0101
a &= 3;    // Binaire : 0011
printf("Résultat : %d\n", a); // Sortie : Résultat : 1

Affectation OU bit à bit (|=)

L'opérateur |= effectue une opération OU bit à bit et affecte le résultat à l'opérande de gauche.

int b = 5; // Binaire : 0101
b |= 3;    // Binaire : 0011
printf("Résultat : %d\n", b); // Sortie : Résultat : 7

Affectation OU exclusif bit à bit (^=)

L'opérateur ^= effectue une opération OU exclusif bit à bit et affecte le résultat à l'opérande de gauche.

int c = 5; // Binaire : 0101
c ^= 3;    // Binaire : 0011
printf("Résultat : %d\n", c); // Sortie : Résultat : 6

Affectation de décalage à gauche (<<=)

L'opérateur <<= effectue un décalage à gauche et affecte le résultat à l'opérande de gauche.

int d = 5; // Binaire : 0101
d <<= 1;   // Décaler vers la gauche de 1
printf("Résultat : %d\n", d); // Sortie : Résultat : 10

Affectation de décalage à droite (>>=)

L'opérateur >>= effectue un décalage à droite et affecte le résultat à l'opérande de gauche.

int e = 8; // Binaire : 1000
e >>= 1;   // Décaler vers la droite de 1
printf("Résultat : %d\n", e); // Sortie : Résultat : 4

Tableau récapitulatif des opérateurs d'affectation

Voici un tableau pratique récapitulant tous les opérateurs d'affectation que nous avons couverts :

Opérateur Description Exemple Équivalent à
= Affectation simple x = 5; x = 5;
+= Affectation additionnelle x += 3; x = x + 3;
-= Affectation soustractive x -= 3; x = x - 3;
*= Affectation de multiplication x *= 3; x = x * 3;
/= Affectation de division x /= 3; x = x / 3;
%= Affectation de modulo x %= 3; x = x % 3;
&= Affectation ET bit à bit x &= 3; x = x & 3;
|= Affectation OU bit à bit x |= 3; x = x | 3;
^= Affectation OU exclusif bit à bit x ^= 3; x = x ^ 3;
<<= Affectation de décalage à gauche x <<= 2; x = x << 2;
>>= Affectation de décalage à droite x >>= 2; x = x >> 2;

Et voilà ! Vous venez de faire un grand tour des opérateurs d'affectation en C. Souvenez-vous, la pratique fait le maître. Essayez d'écrire du code en utilisant ces opérateurs, et vous verrez rapidement que vous les utiliserez sans effort.

Bon codage, futurs programmeurs en C !

Credits: Image by storyset