Учись программированию на C++ Builder бесплатно!

Операция запятая (,), называемая операцией последования, соединяет два произвольных выражения, которые вычисляются слева направо. Сначала вычисляется выражение левого операнда. Тип его результата считается void. Затем вычисляется выражение правого операнда. Значение и тип результата операции последования считается равным значению и типу правого операнда. Например, фрагмент текста:

a = 4;
b = а + 5;

можно записать как:

а = 4, b = а + 5;

Можно рекурсивно соединить операциями запятая последовательность выражений:

выражение_1, выражение_2, . выражение_n

Выражения будут вычисляться слева направо, а самое правое выражение определит значение и тип всей этой последовательности.

Соединяться запятыми могут не только выражения присваивания, но и другие. Например, вызов функции с тремя параметрами может иметь вид

func(i, (j = 1, j + 4) , k);

Здесь в качестве второго параметра передается значение операции последования, заключенной в скобки. В результате вызов производится со следующими аргументами: (i, 5, к).

Операция последования используется в основном в операторах цикла for для задания в заголовке некоторой совокупности действий. Например, цикл подсчета суммы элементов некоторого массива можно осуществить циклом for без использования операции последования:

int А[10], sum, i;
...
sum = А[0];
for (int i = 1; i < 10; i++)
sum += A [i];

То же самое можно реализовать более компактно с помощью операции последования:

int А[10], sum, i;
...
for (i = 1, sum = A[0]; i < 10; sum += A[i], i++);

Здесь операция последования использована дважды: при задании действий, выполняемых перед началом цикла (задание начальных значений i и sum), и при описании действий, выполняемых в теле цикла (суммирование значений элементов в sum и инкремент счетчика i).

Не используйте без нужды операцию последования (,). Применение ее оправдано только при объединении одинаковых по смыслу выражений в основном в операторах циклов. Более широкое применение операции последования ухудшает читаемость кода, маскирует ошибки, усложняет сопровождение программы.

Поделиться