Maison  >  Article  >  développement back-end  >  Quelle est la différence entre && et & en langage C ?

Quelle est la différence entre && et & en langage C ?

下次还敢
下次还敢original
2024-04-13 18:36:44475parcourir

En langage C, && et & sont tous deux des opérateurs logiques, mais il existe les différences suivantes : && a une priorité plus élevée que & ; && est associatif à gauche, & est associatif à droite ; && renvoie une valeur booléenne et renvoie une valeur entière ; ; && évaluation de court-circuit , & ne court-circuite pas l'évaluation.

Quelle est la différence entre && et & en langage C ?

La différence entre && et & en langage C

En langage C, && et & sont tous deux des opérateurs logiques, utilisés pour opérer sur des valeurs booléennes. Cependant, il existe plusieurs différences clés entre eux :

1 Priorité d'opération

  • && a une priorité d'opération plus élevée que &. Cela signifie que && sera exécuté avant & dans l'expression.

2. Associativité

  • && a une associativité de gauche, tandis que & a une associativité de droite. Cela signifie que lorsque plusieurs opérateurs && ou & apparaissent dans une expression, && fonctionnera d'abord sur l'opérande le plus à gauche de l'expression, et & fonctionnera d'abord sur l'opérande le plus à droite de l'expression.

3. Résultat de l'opération Le résultat de l'opération de

  • && est une valeur booléenne (vrai ou faux). Le résultat de l'opération
  • & est une valeur entière (0 ou 1).

4. Évaluation de court-circuit

  • && a des caractéristiques d'évaluation de court-circuit. Cela signifie que si le premier opérande est faux, le deuxième opérande ne sera pas évalué et le résultat de l'expression entière sera faux.
  • & n'a pas de propriétés d'évaluation de court-circuit. Le deuxième opérande est évalué quelle que soit la valeur du premier opérande et le résultat de l'expression entière sera 0 ou 1.

Exemple

L'exemple de code suivant montre la différence entre ces deux opérateurs :

int a = 1, b = 0;

printf("&&: %d\n", a && b); // 输出: 0 (假)
printf("& : %d\n", a & b); // 输出: 0 (0)

Dans le premier exemple, puisque a est vrai mais b est faux, l'expression && renvoie Fake. Dans le deuxième exemple, puisque a est vrai et b est faux, l'expression & est évaluée à 0 (une valeur entière).

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn