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