Унарна операция в математиката се нарича операция с единствен операнд, или с други думи, функция над един аргумент.
За означение на унарните операции се използват различни нотации: префиксна нотация: например -n или ¬p постфиксна нотация: например n!, n2 функционална нотация: например sin x или sin(x), mod x или |x|, ln x, log x други: например √, „втори корен“.
Тъй като унарните операции имат само един операнд, те се оценяват приоритетно пред останалите операции, които ги съдържат. Например при следния запис: 3 − −2 първият минус представлява бинарната операция „изваждане“, а вторият минус – унарната операция „отрицание“. Следователно, първо се оценява унарната операция. По-ясно записано, в скоби, същото изглежда така: 3 − (−2) = 3 + 2 = 5 При радикалите няма нужда от скоби, понеже хоризонталната черта се простира над целия израз и играе роля на своеобразни скоби.
Унарни операции в програмирането Във фамилията от програмни езици, базирани на C, следните оператори са унарни: Инкрементиране (нарастване с единица): ++x, x++ Декрементиране (намаляване с единица): −−x, x−− Адрес на променливата в паметта: &x Стойност, съдържаща се на адреса, който указателят сочи: *x Положително число: +x Отрицателно число: −x Побитово отрицание (инверсия, допълване до 1): ~x Логическо отрицание: !x Размер на операнда в байтове: sizeof x, sizeof(type-name) Преобразуване на типа данни: (type-name) cast-expression
В повечето програмни езици, операторите за инкрементиране и декрементиране могат да бъдат както с префиксна, така и с постфиксна форма, което има значение при работа с променливи. При префиксен запис, стойността на променливата първо се увеличава (или намалява) с единица и после се използва като аргумент на функцията, а при постфиксен запис, извиканата функция използва заварената стойност на променливата и след това тази стойност се увеличава (намалява).
Следват два примера, при които оценяването на целочислените аргументи се извършва от ляво надясно.
Пример 1 int i = 0; printf (" %d \n %d ", i++, i++);
Изход: 0 1
Пример 2 int i = 0; printf (" %d \n %d ", ++i, ++i);
Изход: 1 2
Оператори за инкрементиране и декрементиране обикновено се използват във For-циклите.
Категория:Алгебра Категория:Програмиране