in Programming in C recategorized by
9,570 views
30 votes
30 votes

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 invoking $printxy(1,1)$ is:

  1. $0, 0$
  2. $0, 1$
  3. $1, 0$
  4. $1, 1$
in Programming in C recategorized by
by
9.6k views

2 Comments

already solved
0
0
moved by
Answer will be (c). x=1,y=0
1
1

11 Answers

0 votes
0 votes

Answer:

Option C: 1,0

 

0 votes
0 votes

Option c is right.

0 votes
0 votes

Explanatin:

initially x and y are passed into this function using call by value printxy(1,1)

X is 1 

y is 1

now what you are doing is assigning x=0 

 

now x=0 y=1

PTR is pointing to x means it has x’s address

x’s value is now copied into y

x=0 and y=0

*ptr=1 means you are assigning value 1 to x

now x=1, y=0

Option C

Answer:

Related questions