Unary operators in C - GeeksforGeeks (2024)

Last Updated : 26 Dec, 2023

Improve

Unary operators are the operators that perform operations on a single operand to produce a new value.

Types of unary operators

Types of unary operators are mentioned below:

  1. Unary minus ( – )
  2. Increment ( ++ )
  3. Decrement ( — )
  4. NOT ( ! )
  5. Addressof operator ( & )
  6. sizeof()

1. Unary Minus

The minus operator ( – ) changes the sign of its argument. A positive number becomes negative, and a negative number becomes positive.

 int a = 10;
int b = -a; // b = -10

Unary minus is different from the subtraction operator, as subtraction requires two operands.

Below is the implementation of the unary minus (-) operator:

C

#include <stdio.h>

int main()

{

// declaring a positive integer

int positiveInteger = 100;

// using - sign to make the value of positive integers

// to negative

int negativeInteger = -positiveInteger;

printf("Positive Integer = %d\n", positiveInteger);

printf("Negative Integer = %d", negativeInteger);

return 0;

}

Output

Positive Integer = 100Negative Integer = -100

2. Increment

The increment operator ( ++ ) is used to increment the value of the variable by 1. The increment can be done in two ways:

2.1 prefix increment

In this method, the operator precedes the operand (e.g., ++a). The value of the operand will be altered before it is used.

Example:

 int a = 1;
int b = ++a; // b = 2

2.2 postfix increment

In this method, the operator follows the operand (e.g., a++). The value operand will be altered after it is used.

Example:

 int a = 1;
int b = a++; // b = 1
int c = a; // c = 2

Below is the implementation of the increment ( ++ ):

C

// C program to illustrate increment

#include <stdio.h>

int main()

{

int a = 5;

int b = 5;

printf("Pre-Incrementing a = %d\n", ++a);

printf("Post-Incrementing b = %d", b++);

return 0;

}

3. Decrement

The decrement operator ( — ) is used to decrement the value of the variable by 1. The decrement can be done in two ways:

3.1 prefix decrement

In this method, the operator precedes the operand (e.g., – -a). The value of the operand will be altered before it is used.

Example:

 int a = 1;
int b = --a; // b = 0

3.2 postfix decrement

In this method, the operator follows the operand (e.g., a- -). The value of the operand will be altered after it is used.

Example:

 int a = 1;
int b = a--; // b = 1
int c = a; // c = 0

Below is the implementation of the decrement ( — ):

C

// C program to illustrate decrement

#include <stdio.h>

int main()

{

int a = 5;

int b = 5;

printf("Pre-Decrementing a = %d\n", --a);

printf("Post-Decrementing b = %d", b--);

return 0;

}

4. NOT ( ! )

The logical NOT operator ( ! ) is used to reverse the logical state of its operand. If a condition is true, then the Logical NOT operator will make it false.

Example:

 If x is true, then !x is false
If x is false, then !x is true

Below is the implementation of the NOT (!) operator:

C

// C program to illustrate NOT operator

#include <stdio.h>

int main()

{

int a = 10;

int b = 5;

if (!(a > b))

printf("b is greater than a\n");

else

printf("a is greater than b");

return 0;

}

Output

a is greater than b

5. Addressof operator ( & )

The addressof operator ( & ) gives an address of a variable. It is used to return the memory address of a variable. These addresses returned by the address-of operator are known as pointers because they “point” to the variable in memory.

Example:

 & gives an address on variable n
int a;
int *ptr;
ptr = &a; // address of a is copied to the location ptr.

Below is the implementation of the Addressof operator(&):

C

// C program to demonstrate the use of 'address-of(&)'

// operator

#include <stdio.h>

int main()

{

int a = 20;

printf("Address of a = %p", &a);

return 0;

}

Output

Address of a = 0x7fff78c3f37c

6. sizeof()

This operator returns the size of its operand, in bytes. The sizeof() operator always precedes its operand. The operand is an expression, or it may be a cast.

Note: The `sizeof()` operator in C++ is machine dependent. For example, the size of an ‘int’ in C++ may be 4 bytes in a 32-bit machine but it may be 8 bytes in a 64-bit machine.

Below is the implementation of sizeof() operator:

C

// C program to illustrate the sizeof operator

#include <stdio.h>

int main()

{

// printing the size of double and int using sizeof

printf("Size of double: %d\n", sizeof(double));

printf("Size of int: %d\n", sizeof(int));

return 0;

}

Output

Size of double: 8Size of int: 4


Unary operators in C - GeeksforGeeks (1)

GeeksforGeeks

Improve

Previous Article

Arithmetic Operators in C

Next Article

Relational Operators in C

Please Login to comment...

Unary operators in C - GeeksforGeeks (2024)
Top Articles
Latest Posts
Article information

Author: Nathanael Baumbach

Last Updated:

Views: 6138

Rating: 4.4 / 5 (55 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Nathanael Baumbach

Birthday: 1998-12-02

Address: Apt. 829 751 Glover View, West Orlando, IN 22436

Phone: +901025288581

Job: Internal IT Coordinator

Hobby: Gunsmithing, Motor sports, Flying, Skiing, Hooping, Lego building, Ice skating

Introduction: My name is Nathanael Baumbach, I am a fantastic, nice, victorious, brave, healthy, cute, glorious person who loves writing and wants to share my knowledge and understanding with you.