title: C: False condition is interpreted as true in if statement
body: <p>So I have the following program:</p>
  
  <pre><code># define swap(a,b) temp=a; a=b; b=temp; 
  
  int main() {
  int i, j, temp;
  i = 5;
  j = 10;
  temp = 0;
  if (i &gt; j)
      swap(i, j);
  printf("%d %d %d", i, j, temp);
  }
  </code></pre>
  
  <p><strong>This results in:</strong> </p>
  
  <pre><code>10, 0, 0
  </code></pre>
  
  <p>What I don't understand is why the <code>if (5 &gt; 10)</code> condition was executed as "true" even though 5 is not bigger than 10.</p>