I have been asked the following question in a test (I didn't want to write it myself. The test asked it. I know its bad code still) about evaluating ++*ptr++
int Ar[ ] = { 6 , 3 , 8 , 10 , 4 , 6 , 7} ;
int *Ptr = Ar ;
cout<<++*Ptr++ ;
However, I suspect this is undefined behavior since it can be both (++*ptr)++ or ++(*ptr++).
Is it? I am not too well acquainted with documentation so I couldn't find anything.