Студенту >> Язык программирования Си


Дополнительные арифметические операции

Язык Си имеет ряд уникальных операций, как правило, отсутствующих в других языках программирования. К этим операциям относятся операция увеличения на единицу ++ и операция уменьшения на единицу. Например:

         a = a + 1;   эквивалентно   a++;  или  ++a;

Выполнение операций "++" или "--" вызывает увеличение или уменьшение на единицу значения соответствующей переменной.

Результат операций может быть различным в зависимости от того, где находятся знаки операций: если используется постфиксная операция, т.е операция ++ или -- записана после переменной, то результатом операции будет значение переменной до увеличения или уменьшения. Иными словами переменная сначала используется в выражении, а затем увеличивается или уменьшается. Например:

           a = 4;
           b = ( a++ ) * 5;  /* здесь b = 20 */

Если используется префиксная операция, т. е. операция ++ или -- записана перед переменной, то результат операции - значение переменной после увеличения или уменьшения. Иными словами переменная вначале увеличивается или уменьшается, затем используется в выражении. Например:

           a = 4;
           b = ( ++ a ) * 5;  /* здесь b = 25 */

Приоритет операций выше, чем у * или /, но все равно рекомендуется ставить скобки, чтобы не запутаться.

Дополнительные операции присваивания

Очень часто в программах присутствуют операторы вида

                    a = a + b;
                    a = a - b;
                    a = a * b;
                    a = a / b;

Они изменяют значения некоторых переменных. В языке Cи для сокращения программ и повышения их эффективности используются дополнительные операторы присваивания:

                    a += b;
                    a -= b;
                    a *= b;
                    a /= b;
                    a %= b;

Дополнительные операции присваивания должны быть записаны слитно, без пробелов. Действие операции - изменение значения переменной, стоящей слева от знака операции. Результат - значение измененной переменной. Дополнительные операции присваивания имеют самый низкий приоритет и выполняются справа налево.

Использование операций ++, --, +=, , , /=, %= вместо обычных не является обязательным, но их применение считается хорошим стилем программирования на языке Cи.

НАВЕРХ