retagged by
280 views
0 votes
0 votes
#include <stdio.h>
int a;
int ar[4]={1,0,2,3};
int main()
{
   a=0;
   foo(ar[a],ar[ar[a]]);
   printf("%d%d%d%d",ar[0],ar[1],ar[2],ar[3]);
   return 0;
}
foo(int x,int y)
{
    x=x+1;
    y=y+1;
    x=x+1;
    y=y+1;
    ar[1]=50;
}

 

what will be the output if C uses pass by reference(suppose) ?

a. 1 50 2 3

b. 3 50 2 3

c. 3 2 2 3

d. none
retagged by

1 Answer

Best answer
1 votes
1 votes

If the arguments to foo() are supposed to be passed by reference in C(though there is no pass by reference in C), then ar[0] is changed to 3. ar[1] = 50.

Hence option B.

selected by

Related questions

0 votes
0 votes
1 answer
1
SSR17 asked Feb 29
204 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how
2 votes
2 votes
1 answer
2
rupamsardar asked Aug 30, 2023
466 views
#include <stdio.h int f(int x) { if(x%2==0) { return f(f(x-1)); } else return (x++); } int main() { printf("%d",f(12)); ret...
5 votes
5 votes
2 answers
3
saurabh0709 asked Aug 1, 2023
1,136 views
What will be the output of the following code? _______ #include <stdio.h int main(){ char val=250; int ans; ans= val+ !val + ~val + ++val; printf("%d", ans); return 0; }
2 votes
2 votes
1 answer
4