Could someone explain this code for me please : <p>I found this Caesar cipher encryption code on the web and I'm trying to understand how it works </p>

<pre><code>#include&lt;stdio.h&gt;

int main()
{
char message[100], ch;
int i, key;

printf("Enter a message to encrypt: ");
gets(message);
printf("Enter key: ");
scanf("%d", &amp;key);

for(i = 0; message[i] != '\0'; ++i){
    ch = message[i];

    if(ch &gt;= 'a' &amp;&amp; ch &lt;= 'z'){
        ch = ch + key;

        if(ch &gt; 'z'){
            ch = ch - 'z' + 'a' - 1;
        }

        message[i] = ch;
    }
    else if(ch &gt;= 'A' &amp;&amp; ch &lt;= 'Z'){
        ch = ch + key;

        if(ch &gt; 'Z'){
            ch = ch - 'Z' + 'A' - 1;
        }

        message[i] = ch;
    }
}

printf("Encrypted message: %s", message);

return 0;
}
</code></pre>

<ul>
<li><p>Meaning of <code>if(ch &gt;= 'a' &amp;&amp; ch &lt;= 'z')</code> 
Like does c include the alphabet as an array or something or how does it know that the letter is b or others ?</p></li>
<li><p>Adding an int to a char in <code>ch = ch + key;</code></p></li>
<li><p>this math thing <code>ch = ch - 'Z' + 'A' - 1;</code></p></li>
</ul>

<p>And thanks very very much </p>
