Different results using atoi
<p>Could someone explain why those calls are not returning the same expected result?</p>

<pre><code>unsigned int GetDigit(const string&amp; s, unsigned int pos)
{
      // Works as intended
      char c = s[pos];
      return atoi(&amp;c);

      // doesn't give expected results
      return atoi(&amp;s[pos]);
      return atoi(&amp;static_cast&lt;char&gt;(s[pos]));
      return atoi(&amp;char(s[pos]));
}
</code></pre>

<p><strong>Remark</strong>: I'm not looking for the best way to convert a <code>char</code> to an <code>int</code>.</p>
