0

How come this function can return a value without the return statement?

#include <iostream> using namespace std; void func(int&a){ a=5; } // no "return a;" statement, yet still returns the value 5 back to main()... int main() { int x = 2; func(x); cout<< x; return 0; } // Outputs 5. Do formal parameters with reference(s) to the actual argument's variable(s) NOT need return statements because both the reference and argument variable are pointing to the same place in the computer's memory?

4th Aug 2020, 5:35 AM
Solus
Solus - avatar
2 odpowiedzi
+ 1
In the function you have declared the function to take some parameter yes, but the parameter is already fixed in your case. void func(int&a) { int a=5 } so even wen calling it down to the main it will still carry with it all the attributes u had provided it with Its just like telling somebody //this is a black pen You already have specified that the pen is black hence it cant be red nor blue if that person wanted to change it to a different color So in ur case uve told the main that func takes in a parameter and that parameter is already initialized to 5 so u cant change it
5th Aug 2020, 6:12 AM
Jkim Avatar
Jkim Avatar - avatar
5th Aug 2020, 6:13 AM
Jkim Avatar
Jkim Avatar - avatar