Здравствуйте, Аноним, Вы писали:
А>Почему компилятор так не пускает
А>А>a > b ? puts("yes") : ;
А>
А>а так пускает
А>А>a > b ? puts("yes") : (0) ;
А>
Потому что в первом случае если (a <= b) то программа выполняется дальше...(а это недопустимо в данном операторе):
goto A;
...
A : ;
...
Почему компилятор так не пускает
a > b ? puts("yes") : ;
а так пускает
a > b ? puts("yes") : (0) ;
Здравствуйте, Аноним, Вы писали:
А>Почему компилятор так не пускает
А>А>a > b ? puts("yes") : ;
А>
А>а так пускает
А>А>a > b ? puts("yes") : (0) ;
А>
Потому что в первом варианте в ТЕРнарном операторе третьего выражения нет.
Во втором случае оба выражения имеют тип "целое", поэтому все ок.
Потому, что выражения, стоящие по разные стороны от двоеточия, должны иметь один и тот же тип.