char类型字符常量解释

img


可以通俗地解释一下这句话是什么意思嘛?看不太懂
1.定义的FATE 是啥意思,4个独立的码是哪儿来的?
2.最后那个因此“grade的值是‘E’”是怎么得出的结论

本人不才,下面是本人的见解:因为ASCII值的大小为一个字节,即8个比特位,也就是图片中的8位储存单元;而整形类型的大小为四个字节,即32个比特位,也就是图片中的32位储存单元。解释完这个,就开始解决问题。第一个问题:不用纠结这个FATE,他就是定义了一个字符类型的变量,然后这个变量的名称是FATE;4个独立的码就是整形类型是四个字节,而字符类型是一个字节,所以一个整形类型可以分为四个字符类型。第二个问题:就是这个整形类型的变量中32位储存单元都有数字,但是将他强制类型转换为字符类型的时候,会进行切割,只要最后8位储存单元的数字,那么最后8为储存单元的值为字符’E'的ASCII值,则最后这个字符类型变量的值就是E。

这说白了就是
union CH
{
int val;
struct { char ch[4]; }
};
既可以看作一个整数,也可以看作4个字符。