0

I am beginner for C++ and confused with the output.

Why is the output 01234 instead of 43210? #include <iostream> using namespace std; void func(int x){ if(x>0){ func(--x); cout<<x; } else return; } int main() { func(5); return 0; }

9th Aug 2018, 9:16 AM
Marven Mendoza
Marven Mendoza - avatar
4 Respuestas
+ 2
Marven Mendoza just change two lines in func as below and output will change: cout << x; //first print value of x func(--x); // after printing value 5 first on cout, again function is called for 4 and so on.... Now coming to original code having output as 01234...Refer below: From main, func is called and x is 5... in func x is more than 0 so, again func is called with 4 (--x)..Note that yet cout << x is not executed for func() with x=5 and func for x=4 is called..so, all this function call happens till x is 1... Now, first x is 0 executed for cout and at last x as 4..so, output is 01234 feel free to ask if you have any query
9th Aug 2018, 1:06 PM
Ketan Lalcheta
Ketan Lalcheta - avatar
+ 3
that is kept in stack by compiler.. for example, in five line of code, compiler do not go to line 3 till the line 2 is not fully executed....
9th Aug 2018, 1:13 PM
Ketan Lalcheta
Ketan Lalcheta - avatar
9th Aug 2018, 9:41 AM
Mustafa K.
Mustafa K. - avatar
0
Ketan Lalcheta, I have a question, how something is printed in the code that he mentioned in his post. I mean, in if statement func is called first before cout and how still cout is executed,
9th Aug 2018, 1:09 PM
Mustafa K.
Mustafa K. - avatar