Understanding pointers in C/C++ : <p>I'm trying to understand how pointers work and I'm stuck at this line</p>

<pre><code>for (p = s + strlen(s) - 1; s &lt; p; s++, p--)
</code></pre>

<p>I don't understand p what it's equated to.
can anyone help me?</p>

<p>here's the full code.</p>

<pre><code>void Reverse(char *s){
    char c, *p;

    for (p = s + strlen(s) - 1; s &lt; p; s++, p--){
        c = *s;
        *s = *p;
        *p = c;
    }
}


int main(){
    char ch[] = "!dlroW olleH";
    Reverse(ch);
    printf("%s", ch);

    return 0;

}
</code></pre>
