In this example, function f requires a reference to an int, and c is a char:
f(int&); char c; f(c);
Instead of calling f with the address of c, the compiler generates code equivalent to the C++ source code:
int X = c, f(X);