Différence entre & et && en C/C++
Quelle est la différence entre & et && ? – les deux sont des opérateurs utilisés pour évaluer les instructions conditionnelles. L’opérateur & est un opérateur aussi bien logique que binaire. L’opérateur && est purement un opérateur logique. La différence clé entre les deux; l’opérateur & évalue les deux côtés de l’expression alors que l’opérateur && évalue uniquement le côté gauche de l’expression pour obtenir le résultat final.
Table de comparaison
& | && | |
---|---|---|
Opérateur | C’est un opérateur binaire. | C’est un opérateur logique. |
Évaluation | Il évalue les deux côtés gauche et droit de l’expression. | Il évalue uniquement le côté gauche de l’expression. |
Utilisation | Utilisé pour vérifier une condition logique et pour masquer certains bits tels que les bits de parité. | Utilisé uniquement pour vérifier une condition logique. |
L’opérateur d’adresse &
L’opérateur d’adresse & renvoie l’adresse d’une variable. Généralement, & est utilisé lorsque nous stockons des valeurs dans une variable et lorsqu’on affiche l’adresse de n’importe quelle variable.
Considérez l’extrait de code suivant
scanf("%d",&nbr); printf("Adresse de nbr: %8Xn",&nbr);
Dans la première instruction, on stocke la valeur entré par l’utilisateur dans &nbr qui désigne l’adresse de la variable nbr.
Dans la deuxième instruction, l’adresse du nbr sera affichée.
L’opérateur bit à bit &
Opérateur bit à bit (&) est un opérateur binaire car il opère sur deux opérandes et est utilisé pour l’opération ET bit à bit.
Considérez l’extrait de code suivant
#include<stdio.h> int main() { int x=7; if(x&1) printf("UN"); if(x&2) printf("DEUX"); }
Dans le code ci-dessus, la valeur de x est 7 (00000111), donc les deux premiers bits sont à 1, les deux conditions (x&1) et (x&2) seront vraies et les deux messages « UN DEUX » seront affichés.
L’opérateur ET logique (&&)
Opérateur ET logique (&&) est un opérateur binaire qui permet de vérifier plusieurs conditions à la fois et si toutes les conditions sont vraies, le résultat sera vrai.
Considérez l’extrait de code suivant
#include<stdio.h> int main() { int a=10; int b=20; if(a==10 && b==20) printf("TRUE"); else printf("FALSE"); }
Dans cette instruction, les deux conditions a == 10 et b == 20 sont vraies, donc « TRUE » sera affiché.
Conclusion
L’opérateur & et &&, les deux sont utilisés pour évaluer une condition booléenne tandis que l’opérateur & est également utilisé pour une opération au niveau des bits.
il y a marqué que && n’évalue que le coté gauche, c’est faux, il n’évalue que le coté gauche si celui ci est faux