Оператор " запятая. "
Разрешает группированию 2 выписки, где одна ожидается.
expression , expression
Заметки
Оператор-запятая имеет ассоциативность слева направо.Выражения вычисляются 2 разделенные запятой слева направо.Левый операнд всегда оценивается и все побочные эффекты завершены, прежде чем правый операнд вычисляется.
Можно использовать запятые в качестве разделителей в некоторых контекстах, например списки аргументов функции.Не путайте использование запятой в качестве разделителя со своей используйте оператор like; 2 используют совершенно разными продуктами.
Рассмотрим выражение
e1 " e2
Тип и значение выражения типа и значения e2; результат оценки e1 отменяет.Результат l-значение, если правый операнд левостороннего значения.
Как правило, в которой в качестве разделителя используется запятая (например в фактических аргументов в функции или агрегата инициализаторам), оператор " запятая и его операнды должны быть заключены в скобки.Примеры.
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
В вызове функции func_one выше передаются 3 аргумента, разделенные запятыми. x" y + 2и z.В вызове функции func_twoпринудительный компилятора интерпретации скобок, первая запятой, как оператор последовательн-оценки.Этот вызов функции передает 2 для аргумента func_two.первый аргумент результат операции последовательн-оценки (x--, y + 2), содержащий значение и тип выражения y + 2; второй аргумент z.
Пример
// cpp_comma_operator.cpp
#include <stdio.h>
int main () {
int i = 10, b = 20, c= 30;
i = b, c;
printf("%i\n", i);
i = (b, c);
printf("%i\n", i);
}
См. также
Ссылки
Выражения с бинарными операторами
Operator precedence and Associativity