С++ Puzzle, What is the outcome?
<p>Unfortunately I am not C++ developer, but a few days ago, one of C++ team asked next question:</p>

<p>There is simple code </p>

<pre><code>int a( int *p0 ) {
        int p;
        if( p0 ) return p0 &gt; &amp;p;
        return a(&amp;p);
}

int main() {
        puts( a(0) ? "y" : "n" );
}
</code></pre>

<p>What result will be and how many times method <code>a</code> will be called ?</p>

<p>Can some one explain me how it will work and answer to him question, because it is very interesting ?
Thanks</p>
