I found the sign ' and in confusing for many , So let’s explain what’s actually they mean, ++ — — ' C++ beginners I will discuss and . Pre Post Increment Let’s initialize to an integer value, . x 10 x = int 10 Now make another variable y, and put before : ++ x Pre-Increment : int = ++ y x As we know, pre means before, stands before the integer . This is called pre-increment, we are pre -incrementing the value of . So what I mean is plus , and that’s . So, if we print we will get , . ++ 10 y 10 1 11 y 11 (10+1) 11 Now hold’s . y 11 Now if we just change pre-increment operator to then : -- int y = --x // 10 - 1 --> 9 then the same will happen, I will leave this for you. Try it out! process Post-Increment: Let’s initialize to an integer value, . And I will do the same steps just put ++ after the . x 10 10 int x = int y = x++ 10 You may be shocked to see the result of is unchanged…now, print : y y /* result of y */ 10 //no worrry! see below Why did this happen? Well, This is the post-increment rule. Post means after, so what did was not adding to for now. Let’s print the value of now. x ++ 1 10 x // wow, x is now 11 11 As you see, we did a post-increment on , this means you don’t want to add directly to and also don’t want to hold the incremented of the value of . Instead, we want to add after this expression evaluated, this is called post-increment. We don’t want to store the incremented value of into , instead, our want is just to leave this expression like, x ( y = x++) 1 x y x 1 int y = x++ x y int y = x++ --> int y = x + 0, so y = x then x = x+1. So here, the increment is done after the evaluation of the expression And we just call this a Post-Increment. This how it works, (int y = x++) . Note that, The main point is that ++x increments the value and immediately returns it. But, x++ do the opposite as it doesn't return the incremented value immediately. Now, let’s mix these two, and see what’s happening! ++ and — — Mixed, Let’s try this below: code int x = int y = int z = ++x + y++ 10 20 Now, simply if we print z we will get : 31 Let me tell you first, Pre Increment always gets executed first, so means and ( 20 + 0 → 20) and the result is (11+20 → 31). COOL... ++x (10+1 →11) y++ think like Now try this one below: int x = int z = ++x + x++ 10 Careful !, here the pre-increment does its job first and so is first! , so now is Right? now after the , the begins, its job is easy now, and that’s: ++x pre-incremented x (10+1 → 11) pre-increment post-increment x++ → 11+ 0 = 11 So now both and added together and we got the result : ++x x++ // Cool! ( + ) 22 11 11 That’s Simple and Easily gets done, I hope I am able to help you. Let me know in the response section. Thanks….