В следующем примере каждая сторона условного оператора является выражением запятой. Значение первого выражения запятой - IX; Значение второго равно 0. < /p>
Код: Выделить всё
int ival = (ia != 0)
? ix = get_value(), ia[index] = ix
: ia = new int[sz], ia[index] = 0;
< /code>
< /blockquote>
Источник: C ++ Primer, третье издание, 26 марта 1998 г. < /p>
Что на самом деле происходит? Тройный оператор ?:
Код: Выделить всё
ia[index] = 0
int ival = ((ia != 0)
? (ix = get_value(), ia[index] = ix)
: (ia = new int[sz])) ,
ia[index] = 0;
< /code>
Я нашел ошибку в книге? Или так кажется? Пожалуйста, проверьте, правильно ли это.
Подробнее здесь: https://stackoverflow.com/questions/796 ... expression