A convenient untruth: Array notation in C is a lie
The equivalent in C# always made more sense to me (not comparing memory or allocation model between the languages, but simply syntax in relation to a person reading it):<p><pre><code>    int[] arr = new int[5]; &#x2F;&#x2F; C#

    int arr[5]; &#x2F;&#x2F; C

</code></pre>
The fact that the brackets go on the datatype always made more sense to me, after all, I want to refer to memory of a certain cell size (as indicated by int). I realize that there is a lot of stuff going on when using new, but i believe even in C it should read, because you effectively change the datatype (to be of type pointer, rather than int).<p><pre><code>    int[5] arr;
</code></pre>
But then, I will now duck and get the hell out. This is the same reason why it feels wrong to write:<p><pre><code>    int *arr;
</code></pre>
You&#x27;re not changing the identifier, you&#x27;re trying to change the datatype.<p>In summary, I believe that the syntax to fiddling with pointers in C is very misleading, and this I fully agree with the article, but as many people are accustomed to this notation, I will now duck and get far away from the internet, in fear of all the hateful comments explaining to me how I am wrong, and apparently just don&#x27;t understand the superior beauty of complicated C syntax. I will now go and check my garbage collected privilege.