char a=5中这个5是什么量呢,打印出来是一个方框

问题遇到的现象和发生背景

char a=5打印出来是一个方框

问题相关代码,请勿粘贴截图
int main()
{
    char a1 = 5;
    char a2 = '5';
    char a[5] = "boy";
    printf("a1=%c\n", a1);
    printf("a2=%c\n", a2);

    return 0;
}
我想要达到的结果

想对比一下char类型使用时不加单引号的结果

img

方框就表示不在ascii码表里的字符
所以5什么都不是

你查一下ascii码表,不加引号的5就代表5在ascii码表所对应的字符

计算机底层只能存01字符,那么为什么定义成char,能识别到相应的字符呢?是因为计算机根据底层这个1字节的01字符对应的数字,去assii码表中找对应的字符进行显示而已。assii码表百度了解一下
而,显示出现你图像中的框框,他不是什么符号吧,assii码表中有的字符不能直接显示再终端上,可能就会有这种显示。个人理解可以理解为乱码