Increment and Decrement Operators in C
Incrementing and decrementing a value is the function of increment and decrement operators respectively.
In assignment operator, we learnt how to assign a value for a variable.
That is, the value of a is increment by 5.
Instead of writing b = b +1; we can write like this: b++; or ++b;
10++ gets the value 11.
++10 gets the value 11
a++; is an example of post increment.
If we assign the value of a++ to another variable b, then what will the value of b?
int a = 10;
b = a++;
Here what will the value of a and b?
Value of a:
Initial value of a is 10, then a++ means a = a+1. There for a = 10 + 1, ie value of a is 11.
Value of b:
Here b = a++, that is a++ was incremented as post increment. So b gets the value of a before increment (before the operation ++). So b gets the initial value of a. So the value of b is 10.
++c; is an example of pre increment operator.
If we assign the value of ++c to another variable d, then what will the value of d?
int c = 20;
d = ++c;
Here what will the value of c and d?
Value of c:
Initial value of c is 20, and ++c means c = c+1. There for c = 20 + 1, so the value of c is 21.
Value of d:
Here d = ++c, that is ++c was incremented as pre increment. So d gets the value of c after increment operation (after ++). So d gets the incremented value of c (c+1). So the value of c is 21.
How to Remember both Post Increment and Pre Increment without Interchanging?
Take this Example;
b = 2;
a = b++;
In line a = b++, right part is b++. First letter of b++ is b (not increment operator, so no need to increment). So a gets the value of b. ie 2.
b = 2;
a = ++b;
In line a = ++b, right part is ++b. First thing is ++ (increment operator,so we have to increment). So a gets the value of b after increment. ie 3;
Decrement operator is almost same as increment operator. Increment operator increment a value by one, whereas decrement operator decrement a value by one. The symbol — denotes the decrement operator.
–x; is an example for Increment operator.
Post-decrement and Pre-decrement:
These are like the post increment and pre increment. But this operator decrement a value by one.
Example for post decrement:
x = 3;
y = x–; // now x is 2, and y still is 3
Example for pre decrement:
x = 3;
y = –x; //now x is 2, and y is also 2
int x = 5;
y = x–;
printf(“x is %d and y is %d”,x,y);
y = –x;
printf(“n second part”);
printf(“n x is %d and y is %d”,x,y);