想请教一个关于整型变量和字符变量的问题

今天在做题的时候看到了一个第一幅图这样的代码,用了整型变量int存储了一个字符常量,我觉得这样不行吧,但我自己去实践了确实是可以运行的,再换成char也是一样的效果,我就在想是否在一定情况下int和char可以通用呢,如果可以的话是不是跟ASCII码有关呀,getchar里相当于输入了一个整形,但感觉也说不通😂 😂 😂 因为只能输入字符 。
关于ASCII码我就知道可以用第二个图里的格式来定义字符。

img

img

int类型来存储char类型是可以的,只要char类型的的ASCLL码不超过127,如汉字的ASCLL码就大于127,用int类型的存储也输出不了

img

#include<stdio.h>

int main()
{
    char a=getchar();
    putchar(a);
    int t=a;
    printf("\n%c\n",t);
    printf("t:%d\n",t);
    return 0;
}

char占一个字节,int占四个字节,所以char类型可以用int类型存储
getchar返回值是int类型,是因为当getchar读取字符失败时得返回EOF,而EOF被定义为int类型负值