Detailed Print – Computer Sir Ki Class


Lost your password?

Don't have an account ?
Register (It's FREE) ×

Solved Problem!#CPP#2652

Problem Statement - output writing, pass by ref/pass by value

Write the output of the following code piece.


Click to open popup

Run Output



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 @@@@
return 0;

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.


Common Errors

  • 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.