Pointers - Programming

Q1:

What will be the output of the program ?
#include<stdio.h>

int main()
{
    int x=30, *y, *z;
    y=&x; /* Assume address of x is 500 and integer is 4 byte size */
    z=y;
    *y++=*z++;
    x++;
    printf("x=%d, y=%d, z=%d\n", x, y, z);
    return 0;
}

A x=31, y=502, z=502

B x=31, y=500, z=500

C x=31, y=498, z=498

D x=31, y=504, z=504

ANS:A - x=31, y=502, z=502

No answer description is available. Let's discuss.