C 使用 int 类型来处理字符常量,而不是 char 类型。例如,在使用32位 int 的ASCII 系统中,以下代码
char ch = 'C';
'C' 的编码值 67 被存储于 32 位的内存单元中;不过 ch 仍然存储于 8 位的内存单元中,只是它的值变成了 67。因此,我们可以定义形如 'good' 的古怪字符常量。因为每个字符的编码值占用 8 位的内存单元,所以这个常量刚好可以存储于 32 位的内存单元。然而,用这种字符常量初始化字符变量,或者给字符变量赋值的话,导致的结果是,字符变量只能得到字符常量的最后 8 位。也就是说,以下代码
char ch = 'good';
ch 得到的是 'd' 的值。
本文探讨了C语言中如何使用int类型处理字符常量而非char类型。通过实例解释了字符编码值如何存储在不同大小的内存单元中,并展示了当用较大的字符常量初始化小的字符变量时,只有最后8位会被保留。
4767

被折叠的 条评论
为什么被折叠?



