edited by
3,451 views
12 votes
12 votes
#include <stdio.h>
int f(int *a,int b) {
  b = b-1;
  if(b == 0) return 1;
  else {
    *a = *a+1;
    
  return  *a + f(a,b)  ;
  }
}
int main() {
  int X = 5;
  printf("%d\n",f(&X,X));
}

Predict the output

If the return statement was

return  f(a,b)+ *a ;

What would have been the output here ?  Explain why there is change in output (if any)

edited by

1 Answer

Best answer
45 votes
45 votes

See this article from Dennis Ritchie:

REF: Right below the precedence table of the ANCI book here

selected by

Related questions

0 votes
0 votes
1 answer
1
SSR17 asked Feb 29
211 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
468 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