Что значит '?' делать в С++?

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

В приведенном выше фрагменте, что означает "?"? Что мы можем заменить?

Ответы

Ответ 1

Это обычно называют условным оператором и при использовании следующим образом:

condition ? result_if_true : result_if_false

... если значение condition равно true, выражение оценивается как result_if_true, в противном случае оно будет result_if_false.

синтаксический сахар, и в этом случае его можно заменить на

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

Примечание. Некоторые люди относятся к ?: как " тернарный оператор", потому что это единственный тернарный оператор (т.е. оператор, который принимает три аргумента) в язык, который они используют.

Ответ 2

Это тернарный оператор, это в основном оператор inline if

x ? y : z

работает как

if(x) y else z

кроме, вместо выражений вы имеете выражения; поэтому вы можете использовать его в середине более сложного оператора.

Это полезно для написания краткого кода, но его можно использовать для создания сложного кода.

Ответ 3

Он называется условным оператором .

Вы можете заменить его на:

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

Ответ 4

Вы можете просто переписать его как:

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

Что делает то же самое, что сказано в других ответах.

Ответ 5

Это условный оператор.

a? b: c

Это ярлык для IF/THEN/ELSE.

означает: если a истинно, верните b, else верните c. В этом случае, если f == r, верните 1, else вернет 0.

Ответ 6

Знак вопроса - условный оператор. Код означает, что если f == r, то возвращается 1, в противном случае возвращается 0. Код можно переписать как

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

который, вероятно, не самый чистый способ сделать это, но, надеюсь, поможет вам понять.