为什么这个运行出来是ab5051撒?蹲一个大佬佬讲细节一点谢啦~

#include <stdio.h>
main(){
    int i;char a[]="ab12";
    for(i=0;a[i];i++)
    switch(a[i])
    { case 1:printf("%d",a[i]);break;
    case 2:printf("%d",a[i]);break;
    default:if(a[i]>='a'&&a[i]<='z')putchar(a[i]);
    else printf("%d",a[i]+1);
}
}
 

a[2]  是char类型, case  1    1是int型

'1'  != 1