Why does the call
work? I thought you always needed an & on each variable passed to scanf.
You always need a pointer; you don't necessarily need an explicit &. When you
pass an array to scanf, you do not need the &, because arrays are always passed
to functions as pointers, whether you use & or not.