i forget when it was but recently i asked about why x++ generated a warning but *x += 1 doesn't it was explained to me that the ++ operator has higher precedence than the * (or the other way round, i just made a mental note not to do it in general) so by writing *x++ you were incrementing the pointer by 1 not the value it pointed to. however i have just typed out a program in the c unleashed book using an array of functions to play with it and in each function the author writes ++*x (as an example) i thought to myself ah-ha this isn't going to work but it did. as an experiement i changed all the ++*const to *const++ and sure enough i got the warning i expected in the first place.
as far as i understand it ++x increments x before using it and x++ increments x sometime after using it but before the line of code is finished executing (hence the use of x++ in for loops and the such).
question arises then is why does ++*x increment the value that *x is pointing to and *x++ increments the pointer *x