This is because you are doing increment to a constant..
In your case
++i => 6
++i++ => 6++ //this is not possible. Gives lvalue error
++i+10 => 6+10 => 16 //this is possible
So doing ++i++ is not good. Post increment/decrement, pre increment/decrement possible only on variables. At runtime your statement will become a constant so it gives lvalue error here.
++i => 6 => i=6;
i++ => 6 => i=7;
printf("%d",i); //7