Question

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

Dans l'extrait ci-dessus, ce qui signifie "? " signifie? Que pouvons-nous le remplacer?

Était-ce utile?

La solution

Ceci est communément appelé le opérateur conditionnel et quand il est utilisé comme ceci:

condition ? result_if_true : result_if_false

... si le condition évalue à true, l'expression renvoie à result_if_true, sinon il évalue à result_if_false.

Il est le sucre syntaxique , et dans ce cas, il peut être remplacé par

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

Remarque: Certaines personnes se réfèrent à ?: comme « l'opérateur ternaire », car il est le seul opérateur ternaire (c.-à-opérateur qui prend trois arguments) dans la langue ils utilisent.

Autres conseils

Ceci est un opérateur ternaire, il est essentiellement une ligne instruction if

x ? y : z

fonctionne comme

if(x) y else z

sauf, au lieu des déclarations que vous avez des expressions; de sorte que vous pouvez l'utiliser au milieu d'une déclaration plus complexe.

Il est utile pour écrire du code succinct, mais peut être galvaudé pour créer dur pour maintenir le code.

Vous pouvez simplement réécrire comme:

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

Ce qui fait la même chose que dit dans les autres réponses.

Il est appelé opérateur conditionnel .

Vous pouvez le remplacer par:

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

Il est l'opérateur conditionnel.

? b: c

Il est un raccourci pour IF / THEN / ELSE.

signifie: si une chose est vraie, le retour b, sinon retour c. Dans ce cas, si f == r, retour 1, sinon 0 retour.

Juste une note, si jamais vous voyez ceci:

a = x ? : y;

Il est une extension GNU à la norme (voir https: //gcc.gnu .org / onlinedocs / gcc / Conditionals.html # Conditionals ).

Il est le même que

a = x ? x : y;

La marque de question est l'opérateur conditionnel. Le code signifie que si f == r puis 1 est renvoyé, sinon, revenir 0. Le code peut être réécrit sous la forme

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

ce qui est sans doute pas la plus propre façon de le faire, mais aide nous espérons votre compréhension.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top