Wat doet ‘?’ doen in C++?

In het bovenstaande fragment, wat betekent “? “? Waar kunnen we het vervangen door?


Antwoord 1, Autoriteit 100%

Dit wordt gewoonlijk aangeduid als de voorwaardelijke operator , en wanneer gebruikt als dit:

condition ? result_if_true : result_if_false

… Als de conditionevalueert naar true, evalueert de uitdrukking op result_if_true, anders evalueert het naar result_if_false.

Het is syntactische suiker , en in dit geval kan het worden vervangen door

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

Opmerking: Sommige mensen verwijzen naar ?:it als “de ternaire operator “, omdat het de enige ternaire operator is (dwz operator dat duurt drie argumenten) in de taal die ze gebruiken.


Antwoord 2, Autoriteit 11%

Dit is een ternaire operator, het is in feite een inline indien statement

x ? y : z

werkt als

if(x) y else z

behalve, in plaats van uitspraken die u uitdrukkingen heeft; Dus je kunt het in het midden van een complexere verklaring gebruiken.

Het is handig voor het schrijven van beknopte code, maar kan te veel worden gebruikt om de code te behouden.


Antwoord 3, Autoriteit 5%

slechts een briefje, als u dit ooit ziet:

a = x ? : y;

Het is een GNU-uitbreiding van de standaard (zie https://gcc.gnu .org/onlinedocs/gcc/Conditionals.html#Conditionals).

Het is hetzelfde als

a = x ? x : y;

Antwoord 4, autoriteit 4%

Je kunt het gewoon herschrijven als:

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

Wat hetzelfde doet als in de andere antwoorden is gezegd.


Antwoord 5, autoriteit 4%

Het wordt de voorwaardelijke operatorgenoemd.

Je kunt het vervangen door:

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

Antwoord 6, autoriteit 2%

Het is de voorwaardelijke operator.

een ? b : c

Het is een snelkoppeling voor IF/THEN/ELSE.

betekent: als a waar is, retourneer b, anders retourneer c. In dit geval, als f==r, retourneer 1, anders retourneer 0.


Antwoord 7

Het vraagteken is de voorwaardelijke operator. De code betekent dat als f==r dan 1 wordt geretourneerd, anders 0. De code kan worden herschreven als

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

wat waarschijnlijk niet de schoonste manier is om het te doen, maar hopelijk helpt het je begrip.

Other episodes