0だと、条件式で偽と判断される理由が分かりません。

#include <stdio.h>
int main(void)
{
int sum = 1;
while(sum){
printf("整数を入力してください。(0で終了)\n");
scanf("%d",&sum);
printf("%dが入力されました。\n",sum);
}
printf("繰り返しが終りました。\n");
return(0);
}

変数sumを宣言した後、1を代入していますが、その後、whileの条件式に入っています。
そして、この条件式では、0を入力すると、条件が偽と判断されて、条件から抜け出します。
この時、なぜ0だと条件から抜け出すのでしょうか。仕様ですか?

お願いします。

マチガイタ。