What does the forth line do?
int i = 0;
int a[3] = {0, 1, 2};
int *p = a;
*p++ = *p++; /* this line here */
Just for completeness, this is the output:
printf("a = %p, p = %p\n", a, p); /* a = 000000000061FE30, p = 000000000061FE34 */
for(i = 0; i < 3; i++)
printf("a[%d] = %d%s", i, a[i], (i<2)? ", ": "\n"); /* a[0] = 1, a[1] = 1, a[2] = 2 */