Example(s):Palindrome, prime, armstrong, "linear search", reverse etc.
Example(s):1575, 1632, 1539 (Only one at a time)
Login
[lwa]
Solved Problem!
#CPP#2652
Problem Statement - output writing, pass by ref/pass by value
Write the output of the following code piece.
TC++ #2652
Solution
Run Output
@@@@
char a=’#’,b=’@’; //These are initial values of a and b
domywork(a,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..
cout<<a<<b;
This will print @@ as explained above.
domywork(b,a);
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.
cout<<a<<b;
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.