GATE | GATE-CS-2017 (Set 2) | Question 35
Consider the following function implemented in C:
void printxy(int x, int y) { int *ptr; x = 0; ptr = &x; y = *ptr; *ptr = 1; printf("%d,%d", x, y); }
The output of the printxy(1,1) is
(A) 0,0
(B) 0,1
(C) 1,0
(D) 1,1
Answer: (C)
Explanation:
#includevoid main() { int x = 1, y = 1; printxy(x,y); } void printxy(int x, int y) { int *ptr; x = 0; // ptr point to variable of value 0 ptr = &x; // y has value pointed by ptr -> x= 0; y = *ptr; // value pointed by ptr is set to 1 -> x= 1; *ptr = 1; //x be changed to 1 and y will remain 0 printf("%d,%d", x, y); }
Please Login to comment...