int main(){char a;printf("%d",a);return 0;}
a没有初始化。char a='a'; 这样才是97
char a;相当于声明了个字符变量为a,里面并没有东西,所以打印a是0,因为你a里面什么也没有
a没有初始化赋值,不同软件编译结果可能会不同,可能是0,也可能是个随机数,char a='a' 才说明a的变量值是a,然后ASCII值才是97