求助,为什么出现死循环



编写时出现死循环,求指点出现死循环原因
原程序试着样的
main()
{
char a;
for(a=1;a<255;a++)
{
printf("%c",a);
}
getch();
}
结果出现死循环情况,经过反复修改终于将char改成int后不再死循环,也就是程序变成
main()
{
int a;
for(a=1;a<255;a++)
{
printf("%c",a);
}
getch();
}
虽然不再死循环了,但是对出现死循环的原因是百思不得其解,求指点。