 <p>In C a value of 0 means false and any other means true. Strings end in a null character with a value of 0. This while loop copies all the characters from s to d until the null (end of string) is reached.</p> <p>The assignment <code>*d++ = *s++</code> returns the same value as <code>*s++</code> is assigned to <code>*d</code></p> <p>After the loop both <code>s</code> and <code>d</code> will be pointing after the null character. Note that the null is also copied.</p>