Problem Statement - output writing, pass by ref/pass by value
Write the output of the following code piece.
char a=’#’,b=’@’; //These are initial values of a and b
When we pass values here the value of a is passed by reference so its value is likely to be changed by the function. The moment function puts y into x. It actually puts value of b into a. So the b will remain same whatever function does to it as it is not passed by reference..
This will print @@ as explained above.
Since both b and a have already become @ so the changes the function call operations will happen but they will actually not change any values.
So this will further print @@. So final output would be @@@@
void domywork(char &x,char y)
This passes first variable by reference and second by value.
x=y; Original value as passed in x will be overwritten by y
y=x; y will be overwritten by new x but the original y will not be affected as it is passed by value.
- Such programs should be manually dry run to avoid errors.
- Student often forget that in the case of second run of the functions both the original variables are already changed.