You're right to be uncomfortable about ++. Get everything else sorted first. Use x++; as a statement in its own right as a shorthand version of x=x+1; Once you've sorted everything else out in your mind, then you can start moving x++ into expressions. DO NOT use the same variable more than once in the same expression if you're using side effects; even something as simple as printf("%d %d",x,x++); is undefined (i.e. different compilers will handle it differently and any code written in such a way will not be portable). So one compiler might treat that as printf x,x+1; x+=1; another as printf x+1,x; x+=1; (order of evaluation reversed); another as printf x,x; x+=1;

x++ means take the value of x, and some time later (when precisely is undefined) increment x.

Feel free to experiment with all sorts of weird stuff like int y=x++ + ++x; but remember: what happens in the compiler you're using is not definitive; it's not "the only correct way of interpreting the code".