Вычисляющий условный оператор
условие ? выражение 1:выражение 2
тернарный оператор (имеет три аргумента).
При вычислении значения вычисляющего условного оператора вычисляется условие, если условие является истиной, вычисляется выражение 1, которое и будет результатом всего выражения. Если условие ложно вычисляется выражение 2, которое будет результатом всего выражения. Из двух выражений вычисляется только одно.
Пример.
1 2 3 4 |
int a = -2, b = 4, c = 12; c = (a < b ? a:b); //c = -2 c += (a + b < 16 ? a += 3:b -= 3); //a = 1, b = 4, c =-1 b *= ((a + b)&1 == 0 ? b<<=1:b<<=2); //b = 256 |
Оператор перечисления выражений
, (запятая) – бинарный оператор.
выражение 1, выражение 2, …, выражение n
При вычислении значения оператора запятая последовательно вычисляется каждое из выражений, а значением всего выражения является значение последнего выражения.
Пример.
1 2 3 4 5 6 |
int a = 5, b = 3; cout<<(a += 10, b *= 8, a + b); // на экран выведется 39 a = 5; b = 3; cout<<(a += 10) + (b *= 8); // на экран выведется 39 cout<< (a < b ? (a /= 2, b/=2):(a /= 3, b /= 4)); // a = 7, b = 12 на экран выведется 12 |
Оператор преобразования типа
(тип) выражение
тип – имя того типа к которому нужно преобразовать.
выражение – то, что нужно преобразовать.
Пример.
1 2 3 4 |
int a = 13, b = 4; float c = a / b; //c = 3.0 float d = (float)a / b; // d = 3.25 a = (int) d; // a = 3 |