K & R Second Edition (стр. 71) - я, должно быть, пропустил объяснение:
sign = (s[i] == '-') ? -1 : 1;
Контекст это функция, которая преобразует строку в double. Эта часть, в частности, возникает после того, как функция пропускает пробел. Я полагаю, что проверяет положительное или отрицательное значение и сохраняет его как -1 или +1 для преобразования знака в конце функции... return sign * val /power;
Я хотел бы сделать лучше, чем сделать вывод... Я особенно не знаю, что здесь делают ?
и : 1
(или где угодно, если на то пошло).
Это похоже на абстрактную инструкцию if
. Где ?
проверяет правду, а :
- else
... это так? Оно ограничено if/else
?
Я новичок, и я раньше не встречал синтаксис этого выражения, поэтому мне интересно, есть ли какая-то конкретная причина, по-видимому, его часто заменяют формальным if/else
- кроме того, возможно, читабельность?