Skip to content
Related Articles
Pre-increment and Post-increment in C/C++
• Difficulty Level : Easy
• Last Updated : 17 Feb, 2021

Pre-increment operator: A pre-increment operator is used to increment the value of a variable before using it in a expression. In the Pre-Increment, value is first incremented and then used inside the expression.
Syntax:

` a = ++x;`

Here, if the value of ‘x’ is 10 then value of ‘a’ will be 11 because the value of ‘x’ gets modified before using it in the expression.

## CPP

 `// CPP program to demonstrate pre increment``// operator.``#include ``using` `namespace` `std;`` ` `int` `main()``{``    ``int` `x = 10, a;`` ` `    ``a = ++x;``    ``cout << ``"Pre Increment Operation"``;`` ` `    ``// Value of a will change``    ``cout << ``"\na = "` `<< a;`` ` `    ``// Value of x change before execution of a=++x;``    ``cout << ``"\nx = "` `<< x;`` ` `    ``return` `0;``}`

Output :

```Pre Increment Operation
a = 11
x = 11```

Post-increment operator: A post-increment operator is used to increment the value of variable after executing expression completely in which post increment is used. In the Post-Increment, value is first used in a expression and then incremented.
Syntax:

` a = x++;`

Here, suppose the value of ‘x’ is 10 then value of variable ‘b’ will be 10 because old value of ‘x’ is used.

## CPP

 `// CPP program to demonstrate pre increment``// operator.``#include ``using` `namespace` `std;`` ` `int` `main()``{``    ``int` `x = 10, a;`` ` `    ``a = x++;`` ` `    ``cout << ``"Post Increment Operation"``;`` ` `    ``// Value of a will not change``    ``cout << ``"\na = "` `<< a;`` ` `    ``// Value of x change after execution of a=x++;``    ``cout << ``"\nx = "` `<< x;`` ` `    ``return` `0;``}`

Output :

```Post Increment Operation
a = 10
x = 11```

Special Case for Post-increment operator: If we assign the post-incremented value to the same variable then the value of that variable will not get incremented i.e. it will remain the same like it was before.

Syntax:

`a = a++;`

Here, if the value of ‘x’ is 10 then value of ‘a’ will be 10 because the value of ‘x’ gets assigned to the post-incremented value of ‘x’.

## C++

 `#include ``using` `namespace` `std;`` ` `int` `main()``{`` ` `    ``int` `x = 10;`` ` `    ``cout << ``"Value of x before post-incrementing"``;`` ` `    ``cout << ``"\nx = "` `<< x;`` ` `    ``x = x++;`` ` `    ``cout << ``"\nValue of x after post-incrementing"``;`` ` `    ``// Value of a will not change``    ``cout << ``"\nx = "` `<< x;`` ` `    ``return` `0;``}`

Output:

```Value of x before post-incrementing
x = 10
Value of x after post-incrementing
x = 10```

This special case is only with post-increment and post-decrement operators, while the pre-increment and pre-decrement operators works normal in this case.

Evaluating post and pre-increment together

Precedence of postfix ++ is more than prefix ++ and their associativity is also different. Associativity of prefix ++ is right to left and associativity of postfix ++ is left to right.

• Associativity of postfix ++ is left to right
• Associativity of prefix ++ is right to left

You may also like:

This article is contributed by Souvik Nandi. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up