For some processors x=*p++; is [EDIT: compiles to] a single m/c instruction, (perhaps Intel/AMD not amongst them).
Of course it also depends upon the whole context of the code where the code fragment lives as to whether it would be
better used or avoided.
EDIT: eg perfectly acceptable here:- [especially where short strings.]
Code:
while(*d++=*s++); // strcpy()
OR
for(;*d++=*s++;); // strcpy()