Increment/Decrement operators:
++, -- are unary operators used to increment, decrement the
value of a variable by one.
These operators are used as both prefix and postfix
operators.
There may be no difference among postfix and prefix if there
are no other operations are involved other than increment, decrement.
Example1:
#include<stdio.h>
Output: 11 12 11 10
void main()
{
int a=10;
a++;
printf("%d",a);
++a;
printf("\n%d",a);
a--;
printf("\n%d",a);
--a;
printf("\n%d",a);
}
Example explained:
According to the output we come to know that both prefix and
postfix operators work similar.
Postfix VS prefix:
If other operations like assigning, comparing or printing
are involved in increment and decrement statements then there would be
difference among the prefix and postfix operators.
Postfix operator Increments or decrements the value of a
variable after the completion of other operations.
Prefix operator Increments or decrements the value of a
variable before performing other operations.
Example1:
#include<stdio.h>
void main()
{
int a=10,b,c;
b=a++;
c=++b;
printf("a=%d",a);
printf("\nb=%d",b);
printf("\nc=%d",c);
}
Output:
a=11
b=11
c=11
Example explained:
Because a++ is post increment "a" is assigned to "b"
before "a" get incremented.
Because ++b is pre increment "b" is incremented
before assigning to "c"
Example2:
#include<stdio.h>
void main()
{
int a=10,b=20;
printf("a=%d",++a);
printf("\nb=%d",b--);
}
Output:
a=11
b=20
Example explained:
Because ++a is pre increment "a" is incremented before
printing
Because b-- is post decrement "b" is printed
before decrement.
Example3:
#include<stdio.h>
void main()
{
int a=10,b;
b=++a;
if(a<++b)
printf("Hello");
else
printf("World");
}
Output:
Hello
Example explained:
Before checking condition both "a" and "b"
are equal (11)
Because ++b is pre increment "b" is incremented
before comparison
a<++b (11<12) is true
Example4:
#include<stdio.h>
void main()
{
int a=10;
if(10<++a)
printf("a=%d",a);
}
Output:
a=11
Example explained:
Because ++a is pre incrementing "a" is incremented
before comparison
Because 10<++a (10<11) is true the value of "a"
is printed.
Example5: #include<stdio.h> void main() { int a=10; printf("%d\t%d\t%d",--a,a++,++a); }
Output:
11 11 11
Example explained:
The printf statement argument assigning happens from right
to left
Because ++a is pre increment, the value of "a"
incremented before printing.
Because a++ is post increment, the value of "a" is
printed before incrementing.
Because --a is pre decremented, the value of is decremented
before printing.
Example6:
#include<stdio.h>
void main()
{
int a,b,c;
a=10;
printf("%d\t%d\t%d",c=++b,b=a++,--a);
}
Output:
10 9 9
Example explained:
Because --a is pre decrement "a" is decremented
before printing ("a" is 9)
Because a++ is post increment "a" is assigned to "b"
before incrementing ("b" is 9)
Because ++b is pre incrementing "b" is incremented
before assigning. ("c" is 10)
0 comments:
Post a Comment