title: What is &&& operation in C
body: <pre><code>#include &lt;stdio.h&gt;
  
  volatile int i;
  
  int main()
  {
      int c;
  
      for (i = 0; i &lt; 3; i++) 
      {
           c = i &amp;&amp;&amp; i;
           printf("%d\n", c);
      }
  
      return 0;
  }
  </code></pre>
  
  <p>The output of the above program compiled using <code>gcc</code> is</p>
  
  <pre><code>0
  1
  1
  </code></pre>
  
  <p>With the <code>-Wall</code> or <code>-Waddress</code> option, <code>gcc</code> issues a warning:</p>
  
  <pre><code>warning: the address of ‘i’ will always evaluate as ‘true’ [-Waddress]
  </code></pre>
  
  <p>How is <code>c</code> being evaluated in the above program?</p>