Okay, I might be wrong, but I believe the int& max function is being given two variables to use, and the function returns the larger variable with a conditional statement. If m > n is true, the code returns m, the variable before the colon. If m > n is false, the code returns n, because that means n > m. You can read the statement like so:
expression ? if true do this : if not true do this
Because the command happens to be return, it will return the selected variable. As for references, normally when you pass data from function to function, you don't pass the actual variable, but a copy. When you pass by reference, you pass the memory address
of the original variable, rather than a copy, so you actually work with the original variable itself. This allows a function to make direct changes to variables in another function, and to return values of more than one variable at a time.
If you would like more information, go to http://www.cplusplus.com/doc/tutorial/
. Conditional statements are located under "Operators," and references are locted under "Functions (II)"