157 views
Unary Operator in C
The unary operators are operators that work with a single operand, or in other words, they operate on a single value or variable. C supports several unary operators, each with its own specific functionality. Here are some common unary operators in C:
- Unary Plus (
+
): It simply returns the operand’s value with a positive sign. This operator is rarely used, as it doesn’t change the value of the operand. Example:
C
int x = 5;
int result = +x; // result will be 5
- Unary Minus (
-
): It negates the value of the operand. If the operand is positive, it becomes negative, and if it’s negative, it becomes positive. Example:
C
int x = 5;
int result = -x; // result will be -5
- Increment (
++
): It increases the value of the operand by 1. It can be used as a prefix (++x
) or a postfix (x++
) operator. Example:
C
int x = 5;
int result = ++x; // result will be 6, and x becomes 6
- Decrement (
--
): It decreases the value of the operand by 1. Like the increment operator, it can be used as a prefix (--x
) or a postfix (x--
) operator. Example:
C
int x = 5;
int result = x--; // result will be 5, but x becomes 4
- Logical NOT (
!
): It reverses the logical value of the operand. If the operand is true (non-zero), it becomes false (0), and if it’s false (0), it becomes true (non-zero). Example:
C
int isTrue = 1;
int isFalse = !isTrue; // isFalse will be 0
- Bitwise NOT (
~
): It performs bitwise negation on each bit of the operand, changing 0s to 1s and vice versa. Example:
C
unsigned int x = 5;
// Binary: 0000 0000 0000 0000 0000 0000 0000 0101
unsigned int result = ~x;
// Binary: 1111 1111 1111 1111 1111 1111 1111 1010, result will be a large positive integer
- Address-of (
&
): It returns the memory address of the operand (variable). It is often used with pointers to store the address of a variable. Example:
C
int x = 5;
int *ptr = &x; // ptr now contains the address of x
- Indirection (Dereference) (
*
): It is used with pointers to access the value stored at the memory address pointed to by the operand. Example:
C
int x = 5;
int *ptr = &x;
int value = *ptr;
// value will be 5 (the value stored at the memory address pointed to by ptr)
Unary operators are essential in C and are used for a variety of tasks, including arithmetic operations, logical operations, and memory manipulation.