And really, the main benefit to not assigning a value in the declaration is to get the compiler to tell you if there is a code path that misses an assignment.<p><pre><code>    int i;
    if (foo || bar)
        i = 1;
    else if (baz) {
        if (!quux)
            goto fail;
        i = 2;
    }

    printf(&quot;%d&quot;, i); &#x2F;&#x2F; not all code paths assign a value</code></pre>