c is 4, b is a pointer pointing address of a, a is a pointer to pointer of c. Hence both b and c are pointing to same memory address i.e., a.
Hence whatever increment operation happens in f, it happens/ reflects on same value i.e., a.
These steps update it to 5 and stored in z.
*py+=2; //changes c to 7, x is unchanged.
It updates to 7 and stored in y.
x+=3 //x is incremented by 3.