弱弱的问一个C语言基础只是问题。

在int类型为32位和char类型为8位的ASCII系统中,下列代码:
char grade = ‘B’
意味着'B'作为数值66存储在一个32位单元中,而赋值后的grade则把66存储在一个8位单元中。利用字符常量这个特性,可以定义一个字符常量‘FATE’,这这将把4个独立的ASCII码存储在一个32位单元中。然而,如果把这个字符常量赋给一个char变量,那么只有最后8位会起作用, 因此变量的值为‘E’。
为什么最后变量的值是E啊???说白了,我对这段话不太理解!谁能简单回答一下?感激!!!

意味着'B'作为数值66存储在一个32位单元中
-------------------------------------------------------
'B'就是一个8位的单元,怎么变成32位了?

"利用字符常量这个特性,可以定义一个字符常量‘FATE’,这这将把4个独立的ASCII码存储在一个32位单元中。然而,如果把这个字符常量赋给一个char变量,那么只有最后8位会起作用, 因此变量的值为‘E’"

这段话莫名其妙的,不要管它了。
-----------------------------------------------------
什么叫字符常量?'FATE'绝对不可能定义为字符常量,顶多可以定义为字符串常量"FATE";
-----------------------------------------------------
把这个所谓的字符常量'FATE'赋值给32位单元是怎么赋值的呢?
把这个所谓的字符常量'FATE'赋值给char变量是怎么赋值的呢?

C语言是不支持上面这两种赋值的,因为'FATE'本身就是语法错误的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-30
比如这个字符常量 的存储格式为:F A T E,也就是第0字节存储的字符为E,则要将这个赋给一个char变量,它只能取最低的一个字节,也就是第0字节

也就是取到E本回答被提问者采纳
第2个回答  2010-09-30
4个独立的ASCII码存储在一个32位单元中,每8位存一个字母,最后8位存E,赋值之后,前24位被截掉了,剩下最后8位。