EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Unary Operators in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Unary Operators in C++

Unary Operators in C++

Introduction to Unary Operators in C++

Unary operators are the operators that operates on single operand to give the specific result. To perform the operations on these operators we need to use only single operand. C++ provides various unary operators like unary plus operator, unary minus operator, increment operator, decrement operator, address of operator, size of operator, logical NOT, dereferencing operator, and bitwise NOT operator. These operators has right-left associativity, syntax is similar to the postfix operators.

Different Operators of Unary in C++

There are nine unary operators available in C++ programming language as mentioned below:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

1. Unary Plus

A unary plus operator is denoted by symbol “+” and this operator doesn’t make any changes on the operand value. It always represents the value of the operands.

Syntax: +

Code:

#include<iostream>
using namespace std;
int main()
{ int y = + 10;
printf("y = %d \n" , y);
return 0;
}

Output:

plus

2. Unary Minus

A unary minus operator is denoted by the symbol “-” and this operator makes changes on the operand value and as a result, it makes the given value negative. Convert a positive value to negative value and negative value to positive value. It always represents the value of the operands.

Syntax: -

Code:

#include<iostream>
using namespace std;
int main() {
int y;
float x = 2.34;
y = (int) x;
x = -x;
cout << x;
return 0;
}

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,837 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Output:

unary operator op2PNG

3. Increment operator

The increment operator is denoted by symbol “++”. Increment operators always increase the value by 1. Usually two type post-increment and pre-increment operator.

Syntax: ++

Code:

#include <stdio.h>
using namespace std;
int main()
{
int p=10;
int q=20;
printf("The value of p: %d\n",++p);
printf("The value of q: %d\n",q++);
return 0;
}

Output:

increment operator

4. Decrement operator

Decrement operator is denoted by the symbol “–”.The decrement operator always decreases the value by 1. Usually two type post-decrement and pre-decrement operator.

Syntax:--

Code:

#include <stdio.h>
using namespace std;
int main()
{
int p=10;
int q=20;
printf("The value of p: %d\n",--p);
printf("The value of q: %d\n",q--);
return 0;
}

Output:

decrement opertaor

5. Address of the operator

The address of the operator is denoted by the symbol “&” This operator returns the address of any variable. As it usually takes the address of its operand. The operand of the address of the operator can be a function or an Integer value that resides in an object.

Syntax: &

 Code:

#include <stdio.h>
using namespace std;
int main()
{
int x, p=20;
printf("Value of p: %d\n",x);
printf("Address of p: %X\n",&p);
return 0;
}

Output:

unary operator op5PNG

6. Size of the operator

The size of the operator is denoted by the symbol “sizeof()”. The size of the operator acts like a function. This operator always returns the variable and object occupied size. This operator also returns the size of any data types. It is also known as a compile-time unary operator.

Syntax: sizeof()

Code:

#include <stdio.h>
using namespace std;
int main()
{
int p=20;
printf("The size of p    : %d\n",sizeof(p));
printf("The size of 20   : %d\n",sizeof(20));
printf("The size of int  : %d\n",sizeof(int));
printf("The size of char : %d\n",sizeof(char));
printf("The size of float: %d\n",sizeof(float));
return 0;
}

Output:

size of operator

7. Dereferencing operator

Dereferencing operator is denoted by the symbol “*”. This operator returns an integer value which is equal to pointer address value. This operator is also known as an indirection operator.

SYNTAX: *

Code:

#include <iostream>
using namespace std;
int main() {
int x = 5;
int *yx = &x;
int **yyx = &yx;
cout  << "Value of x:\n"
<< "the direct value: " << x << endl
<< "the indirect value: " << *yx << endl
<< "the doubly indirect value: " << **yyx << endl
<< "the address of x: " << yx << endl
<< "the address of x via indirection: " << *yyx << endl;
}

Output:

unary operator op7PNG

8. Logical NOT

Logical NOT operator is denoted by the symbol “!”. This operator reverses the meaning of its operand. This operator is also known as a Logical Negation Operator. Implicitly the operand will be converted to a Boolean data type.

Syntax:!

Code:

#include <iostream>
using namespace std;
int main() {
int x = 0;
if (!x)
cout << "x is zero" << endl;
}

Output:

logical not

 9. Bitwise NOT/One’s Compliment

Bitwise NOT operator is denoted by symbol “ ~ ”. This operator yields the bitwise one’s complement of the operand. This operator is also known as One’s Complement Operator. It means every 1 will be converted to 0 as a result.

Syntax: ~

Code:

#include <iostream>
using namespace std;
int main () {
unsigned short x = 0xFFFF;
cout << std::hex << x << endl;
x = ~x;
cout << std::hex << x << endl;
}

Output:

bitwise not

Let’s take one more example to represent functionalities of unary operators through single C++ code:

#include <iostream>
using namespace std;
int main()
{
int x = 1;
cout << "x value: " << x << endl;
int y = x++; // post increment
cout << "y value after x++ : " << y << endl;
cout << "x value after x++ : " << x << endl;
x = 5;
cout << "x value: "<< x<<endl;
y = --x;
cout << "y value after --x : " << y << endl;
cout << "x value after --x : " << x << endl;
return 0;
}

Output:

unary operator op10PNG

Conclusion

The unary operator is very useful for performing various calculations and type conversion in the smallest possible time. Code efficiency can be increased by using these unary operators because you don’t need to create a function for basic tasks that can be done by operators within a bit amount of time.

Recommended Articles

This has been a guide to the Unary Operators in C++. Here we also discuss the basic concept with top 9 unary operators in c++. You may also have a look at the following articles to learn more–

  1. Python Operators
  2. Regular Expressions in C++
  3. Windows Operators
  4. Unary Operators in Java

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

1 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More