see this code :
#include<stdio.h> int main (){ int a=5,b=3; printf("%d", a++++); // 5 +'s }
Now here see the analysis first we have a++ ,no issue we got a=5 ,now what I did is 5++ which is blunder since post-increment returns rvalue and for any further operation I need lvalue for it ,therefore it is an error post-increment .
Also you can see that when we write a++ it is evaluated as a=a+1 ,but when we write 5++ it makes no sense since it would be 5=5+1 ,which is invalid ,hence lvalue required
please refer to this link once .
http://stackoverflow.com/questions/17440117/confused-with-pre-and-post-increment-operator