title: Size of int and sizeof int pointer on a 64 bit machine
body: <p>I was just wondering how can I know if my laptop is 64 or 32 bit machine. (it is a 64).</p>
  
  <p>So, I thought about printing the following:</p>
  
  <pre><code>int main()
  {
   printf("%d",sizeof(int));
  }
  </code></pre>
  
  <p>and the result was 4, which seemed weird (since it is a 64 bit machine)</p>
  
  <p>But, when I printed this:</p>
  
  <pre><code>int main()
  {
   printf("%d",sizeof(int*));
  }
  </code></pre>
  
  <p>the result was 8, which made more sense.</p>
  
  <p>The question is:</p>
  
  <p>Since I'm using a 64 bit machine, shouldn't a primitive type such as int should use 8 bytes</p>
  
  <p>(64 bit) and by that sizeof int should be 8? Why isn't it so?</p>
  
  <p>And why is the int* size is 8?</p>
  
  <p>A bit confused here,</p>
  
  <p>so thanks in advance.</p>