Oops, you're right - I got the operators the wrong way around! I forget the precise precedence of * and ++ in C sometimes. Assuming that it would be bracketed as *(lwr++), it should actually be:
block statement (assignment) expression operator (dereference) operator (post-increment) variable expression variable