Can the loop continuation condition in for loop be anything that will eventually return a false/null value?
<p>This is out of deitel's c++ book and I'm trying to understand a bit more about why the continuation condition works and how it knows to quit.  s1 and s2 are arrays so when s2 tries to assign the '\n' to s1 does it return null?</p>

<pre><code>void mystery1( char *s1, const char *s2 )
{
while ( *s1 != '\0' )
s1++;

for ( ; *s1 = *s2; s1++, s2++ )
; // empty statement
}
</code></pre>
