Язык С++ и программирование на нем. Рейзлин В.И. - 19 стр.

UptoLike

Составители: 

21
Первый операнд может быть целого или плавающего типа так-
же указателем, ссылкой или элементом перечисления). Для этой опера-
ции важно, является значение первого операнда нулем или нет. Если
операнд1 не равен 0, то вычисляется операнд2 и его значение является
результатом операции. Если операнд1 равен 0, то вычисляется опе-
ранд3, и его значение является результатом операции. Заметим, что
вычисляется либо операнд2, либо операнд3, но не оба.
Пример:
max= a<=b? b:a;
Здесь переменной max присваивается максимальное значение из
переменных а и b.
Если в условной операции операнд2 и операнд3 являются адрес-
ными выражениями, то тернарная операция может стоять слева от знака
присваивания:
a<b? a:b = c*x+d;
Здесь значение выражения c*x+d присваивается меньшей из двух
переменных а и b.
3.9. Операция следования
Символом операции следования является , (запятая). Выражения,
разделенные этим символом, выполняются слева направо строго в том
порядке, в котором они перечислены.
Результатом этой операции является результат последнего выра-
жения. Если оно является адресным выражением, то и результат опера-
ции также является адресным выражением.
Примеры:
int a=3, b=8, c; // здесь запятаяразделитель, а не операция;
c=a++, a+b; // здесь а станет равно 4, а с 12;
(b--,c)*=3; // здесь b станет равно 7, а с 36.
Операция следования часто используется в операторе for. В раз-
личные части этого оператора можно включить несколько выражений,
например, для параллельного изменения двух индексов. Это иллюстри-
руется функцией REVERSE(S), которая располагает строку S в обрат-
ном порядке на том же месте.
void REVERSE ( char S[ ] ){
int C, I, J;