Note:-func(int &a) means it'll receive the address of the argument being passed when the function is invoked with func(int x) in some caller module(main() function in this case).In other words it is call by reference and any change of "a" inside func() will reflect in the caller module.
Now,initially:-a=22,b=33,c=44(given in the snippet),we need to worry about value of "b" & "c" only,as second and third parameters of the function signature are as highlighted "void f(int x,int &y,const int &z)" and the function is called as "f(int a,int b, int c)".Now as 3rd argument is treated as constant and it's never updated in "f()" we don't need to worry about "c" also,and it'll remain constant throughout.Only "b" will be modified as "y" is updated in "f" function as follows:-
So,a=22,b=121,c=44 is the final output
64.3k questions
77.9k answers
244k comments
80.0k users