logo search
OAiP_shporka

18. Унарные операции.

- арифметическое отрицание;

~ побитовое логическое отрицание:

! логическое отрицание;

* разадресация (косвенная адресация);

& взятие адреса;

+унарный плюс;

++ увеличение (инкремент)

-- уменьшение (декремент)

sizeof размер

Унарные операции выполняются справа налево.

Операции увеличения и уменьшения увеличивают или уменьшают значение операнда на единицу и могут быть записаны как справа так и слева от операнда. Если знак операции записан перед операндом (префиксная форма), то изменение операнда происходит до его использования в выражении. Если знак операции записан после операнда (постфиксная форма), то операнд вначале используется в выражении, а затем происходит его изменение.

K=3;

L=K++; //L=3, K=4

L=++K; //L=5, K=5

Операция логического отрицания используется для изменения логического выражения на противоположное.

Оператор & - унарный оператор, возвращающий адрес операнда в памяти. Например, оператор m=&count; записывает в переменную m адрес переменной count. Этот адрес представляет собой адрес ячейки памяти компьютера, в которой размещена переменная.

Оператор * возвращает значение объекта, расположенного по указанному адресу. Операндом для * служит адрес объекта (переменной). Например, если переменная m содержит адрес переменной count, то оператор q=*m; записывает значение переменной count в переменную q.

Операция определения размера sizeof позволяет определить длину операнда в байтах. Например, если компилятор для числе типа int отводит 4 байта, а для чисел типа double – 8, то следующая программа напечатает 8 4.

double f;

printf (“%d”, sizeof f);

printf(“%d”, sizeof(int));

Для вычисления размера типа переменной имя типа д.б. заключено в круглые скобки.

Унарный минус умножает операнд на -1, то есть меняет его знак на противоположный.

Операция побитового отрицания ~ инвертирует биты слова:

x: 0101110110...101101

~x: 1010001001...010010