• edited by
5,853 views
12 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)

1 Answer

Position:
Show:

Related questions

1 1 vote
1 1 answer
260
260 views
khanshahima4 asked Sep 24
260 views
1. If precedence tells me which operator has priority, and associativity tells me how to handle operators at the same level, then why do I need a separate concept called ...
14 14 votes
1 1 answer
1.3k
1.3k views
GO Classes asked Jul 2
1,333 views
Assume:$\texttt{short = 2 bytes}$, $\texttt{int = 4 bytes}$, $\texttt{char = 1 byte}$$\texttt{int}$ needs $4$-byte alignment and the final structure size is rounded to a ...
18 18 votes
2 2 answers
739
739 views
GO Classes asked Jul 2
739 views
Assume:struct Student { double gpa; }; struct Student alice; struct Student *sptr = &alice;Which of the following correctly assigns $\texttt{4.0}$ to $\texttt{alice.gpa}$...
10 10 votes
1 1 answer
552
552 views
GO Classes asked Jul 2
552 views
Consider the following code idea from the source:typedef struct { double x, y; } Point; void reset(Point p) { p.x = p.y = 0; } int main() { Point a = {12.0, 42.0}; Point ...