Desde lenguaje C no soporta el encadenamiento de comparación como a == b == c ; cada igual a operador ( == ) opera en sólo dos operandos. Entonces, ¿cómo la expresión a == b == c evalúa?
De acuerdo con los operadores de asociatividad igual a operador ( == ) opera de izquierda a derecha, lo que significa asociatividad de igual operador ( == ) es de izquierda a derecha.
Expresión a == b == c es en realidad (a == b) c == , ver cómo la expresión (a == b) c == evalúa?
- (a == b) será comparado primera y return ya sea 1 (true) o 0 (false).
- Luego valor de la variable c será comparado con el resultado de (a == b) .
Considere el siguiente programa
#include <stdio.h>
int main(){
int a,b,c;
a=b=c=100;
if(a==b==c)
printf("True...n");
else
printf("False...n");
return 0;
}
salida
False...
Cómo salida es “falso …”?
Ver el programa, los valores de un , b y c es 100 y que están pensando cómo condición es falsa aquí y qué salida es “falso …” ?
La expresión es a == b == c que se evalúa como (a == b) == c ahora lo que será el resultado?
- El resultado de (a == b) es 1 (es decir, verdadera).
- Y (1) == c será 0 (es decir, falsa) porque el valor de c es 100 y 100 es igual a no 1 .