Pregunta

int qempty()
{
    return (f == r ? 1 : 0);
}

En el fragmento anterior, lo que significa " " significa? ¿Qué podemos reemplazarlo con?

¿Fue útil?

Solución

Esto se conoce comúnmente como el operador condicional , y cuando se utiliza de esta manera:

condition ? result_if_true : result_if_false

... si el condition evalúa a true, la expresión se evalúa result_if_true, de lo contrario, se evalúa como result_if_false.

Es azúcar sintáctico , y en este caso, puede ser sustituida por

int qempty()
{ 
  if(f == r)
  {
      return 1;
  } 
  else 
  {
      return 0;
  }
}

Nota: Algunas personas se refieren a ?: como " el operador ternario ", porque es el único operador ternario (es decir, el operador que recibe tres argumentos) en el idioma que están utilizando.

Otros consejos

Este es un operador ternario, que es básicamente una línea if

x ? y : z

funciona como

if(x) y else z

, excepto, en lugar de los estados que tiene expresiones; para que pueda utilizarlo en medio de una declaración más compleja.

Es útil para escribir código sucinta, pero puede ser usado en exceso para crear duro para mantener el código.

Usted sólo puede reescribir como:

int qempty(){ return(f==r);}

¿Qué hace lo mismo como se ha dicho en las otras respuestas.

Se llama la operador condicional .

Puede reemplazarlo con:

int qempty(){ 
    if (f == r) return 1;
    else return 0;
}

Es el operador condicional.

A? b: c

Es un acceso directo para IF / THEN / ELSE.

significa: si a es verdadero, b, c de retorno más de regreso. En este caso, si f == r, volver 1, de lo retorno 0.

Sólo una nota, si alguna vez ve esto:

a = x ? : y;

Es una extensión de GNU a la norma (ver https: //gcc.gnu .org / onlinedocs / gcc / Conditionals.html # condicionales ).

Es el mismo que

a = x ? x : y;

El signo de interrogación es el operador condicional. El código significa que si == f r entonces 1 es devuelto, de lo contrario, el retorno 0. El código se puede reescribirse como

int qempty()
{
  if(f==r)
    return 1;
  else
    return 0;
}

que no es probablemente la manera más limpia de hacerlo, pero espero que ayuda a su comprensión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top