The biggest takeaway is the last paragraph:<p>&gt; On most of the machines you&#x27;re likely to use, &quot;size_t&quot; for loop counters is a good idea where signed values aren&#x27;t required. It&#x27;s unsigned and generally as wide as addresses, so there&#x27;s normally no extra code for zero&#x2F;sign extends, and the type is standard.<p>Just work with size_t and be happy!<p>If you need to iterate through a sequence a[0], a[1], ..., a[n-1] in backwards order, the while-condition &quot;i &gt;= 0&quot; of course won&#x27;t work with size_t (which is unsigned); instead, use the following idiom:<p>for (size_t i = n; i--;) f(a[i]);<p>The above code will call f(a[n-1]), f(a[n-2]), ..., f(a[0]) with no issue, thanks to the post-decrement operator.