for (int k = 0; k < 10; k ++)
p[k] = array [k];
in this loop we are copying all the values from the array to the array P
now
Q=p
Q is pointing P
now p[4]=20
but Q contains the old P array where in 4 th index i.e Q[4] is is also 20(as the location is updated by previous P )
Note: here pointer is involved , so the location is being update ,so Q is getting 20 here .
but question is about array[4] which was initial array ,so value 18
so answer is 18:20