Confusion in Logical AND operation
===


I have some  confusion in how following expression works. 

    cc file_name.c  && ./a.out 

When filename.c gets compiled successfully , its exist status would be 0 (zero). 
So as per logical && operation , second expression  ( ./a.out ) not suppose to be executed. 
But  it  still works and gives me result. How it works ? 

Thanks 