#include <stdio.h>
void foo(int *p, int x){
*p=x;
}
int main(){
int *z;
int a = 20, b = 25;
z = &a;
foo(z,b);
printf("%d",a);
return 0;
}The output of the given C program is __________. (Answer in integer)
Answer
25
Explanation
In main, z = &a makes z hold the address of a. The call foo(z,b) copies that address into p and the value 25 into x.
Inside foo, *p=x stores 25 at the address held by p, which is the variable a itself. So a changes from 20 to 25, and printf prints 25.
Answer: 25