I think its best said as "This code is clearly invalid, however given order of operations, how come?"
Printable View
And I don't think, according to the standard, that all these things are of the same precedence level. My copy says that sizeof and dereferencing are at level 3, while casting is at level 4, meaning a cast expression is not a valid input to sizeof. Edit: Which you can see from the draft at master's link; sizeof takes a unary-expression, which is essentially anything defined on that page or earlier (so * counts), but (int)(*p) is a cast expression instead.
Plus its an lvalue anyway so even still you could never do this (int *)sizeof(int)(*p).
>and you have not got the point yet, Prelude.
Then explain it to me.