Оператор " запятая. "

Разрешает группированию 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);
}
  

См. также

Ссылки

Выражения с бинарными операторами

Операторы C++

Operator precedence and Associativity

Основные понятия

Оператор Последовательн-Оценки