Оператор запятой имеет самый низкий приоритет для всех операторов C / C ++. Поэтому всегда последнее связано с выражением, что означает:
a = b, c;
эквивалентно:
(a = b), c;
. Еще один интересный факт состоит в том, что оператор запятой вводит точка последовательности . Это означает, что выражение:
a+b, c(), d
гарантировано имеет три подвыражения (a + b, c () и d), оцененные по порядку. Это важно, если у них есть побочные эффекты. Обычно компиляторам разрешено оценивать подвыражения в любом порядке, который они считают нужным; например, в вызове функции:
someFunc(arg1, arg2, arg3)
аргументы могут быть оценены в произвольном порядке. Обратите внимание, что запятыми в вызове функции являются не операторы; они являются разделителями.