 <pre><code>char *a </code></pre> <p><code>a</code> is a pointer to something. That something is a <code>char</code></p> <pre><code>int *b </code></pre> <p><code>b</code> is a pointer to something. That something is an <code>int</code></p> <p>Both <code>a</code> and <code>b</code> are <em>pointers</em>, they only store memory addresses to other things, which is why it is possible (but definitely not reccommended; <code>warning</code> by default, <code>error</code> with <code>-wError</code>) to store the address of an <code>int</code> in a <code>char *</code>.<br> Dereferencing it is undefined behaviour and "<a href="http://www.urbandictionary.com/define.php?term=nasal%20demons" rel="nofollow">anything could happen</a>" which is why the warning/error is there in the first place.</p> <p>It <em>may</em> work with your current machine and compiler. It isn't guaranteed to though, and literally anything could break it. Don't do it</p>