Maison > développement back-end > C++ > Est-ce que (4 > y > 1) est toujours évalué à False en C ?

Est-ce que (4 > y > 1) est toujours évalué à False en C ?

Barbara Streisand
Libérer: 2024-12-25 16:49:09
original
229 Les gens l'ont consulté

Does (4 > y > 1) Toujours évaluer à False en C ?
y > 1) Toujours évaluer à False en C ? " />

Évaluer la validité de (4 > y > 1) en C

En C, l'expression (4 > y > 1) peut soulever des questions sur sa validité et son évaluation.

Pour comprendre son comportement, il est essentiel de savoir que les opérateurs de comparaison chaînés, tels que (4 > y > 1), sont analysés comme des comparaisons imbriquées de gauche à droite. Par conséquent, l'instruction :

(4 > y > 1)
Copier après la connexion

est analysée comme :

((4 > y) > 1)
Copier après la connexion

Les opérateurs de comparaison. (> et <) sont évalués dans l'ordre de l'expression, ce qui signifie que le résultat de (4 > y) est soit 0 (faux), soit 1 (vrai) en fonction de la comparaison.

Ensuite, le résultat de (4 > y) est comparé à 1 en utilisant l'opérateur supérieur à (>). Cependant, puisque le résultat de (4 >). y) est toujours 0 ou 1, il ne sera jamais supérieur à 1. Par conséquent, l'instruction entière renvoie toujours false.

Exception pour l'opérateur Surcharge :

Cependant, il existe une exception à ce comportement. Si y est un objet d'une classe avec un opérateur supérieur à surchargé (>), l'évaluation peut changer. Dans de tels cas, l'implémentation de l'opérateur surchargé dicte le comportement de l'expression.

Exemple :

Considérez le code suivant :

class mytype {
};

mytype operator>(int x, const mytype &y) {
    return mytype();
}

int main() {
    mytype y;

    cout << (4 > y > 1) << endl;

    return 0;
}
Copier après la connexion

Dans cet exemple, l'opérateur personnalisé Operator> car la classe mytype est utilisée, ce qui peut entraîner un comportement différent selon l'implémentation de la classe.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal