I checked the section "Interlude: Arrays" because the relationship between pointers and arrays in C is a major sticking point.<p>It claims that, given a declaration<p><pre><code> int array[] = { 45, 67, 89 };
</code></pre>
the expressions "array", "&array", and "&array[0]" are all equivalent. They are not. "&array" and "&array[0]" both refer to the same memory location, but they're of different types.<p>In the next section:<p>"By the way, though sizeof(void) is illegal, void pointers are incremented or decremented by 1 byte."<p>Arithmetic on void pointers is a gcc-specific extension (also supported by some other compilers). It's a constraint violation in standard C.<p>I don't think this is the "best" article on pointers in C.<p>I usually recommend section 6 of the comp.lang.c FAQ, <a href="http://www.c-faq.com/" rel="nofollow">http://www.c-faq.com/</a>