title: Why can't a function have a reference argument in C?
body: <p>For example: <code>void foo( int&amp; i );</code> is not allowed. Is there a reason for this, or was it just not part of the specification? It is my understanding that references are generally implemented as pointers. In C++, is there any functional difference (not syntactic/semantic) between <code>void foo( int* i )</code> and <code>void foo( int&amp; i )</code>?</p>