In C, parameters are passed by value.
Here, p1 is having address of a and p2 is having address of p1.
Inside foo, **p2=5 makes the value of a = 5.
*p1 = 6 further changes it to 6.
But a = 7 won't affect the 'a' inside the main as it is a local copy.
Correct Answer: 6.