Let me present a example :
a = ++a;
The above statement is said to have undefined behaviors ( I already read the article on UB on SO)
but according precedence rule operator prefix ++
has higher precedence than assignment operator =
so a
should be incremented first then assigned back to a. so every evaluation is known, so why it is UB ?