存储数据类型char

时间:2017-02-09 16:29:35

标签: c

奇怪的是,C将字符常量视为int类型而不是char类型。例如,在具有32位int和8位char的ASCII系统上,代码为

char grade = 'B';

表示'B'作为以32位单位存储的数值66,但是等级以66位存储在8位单元中。 请解释这一行。

1 个答案:

答案 0 :(得分:1)

grade的类型为char,并使用int类型的表达式进行初始化。这是完全普通和合法的,int值隐式转换为类型char。任何算术类型的值都可以隐式转换为任何其他算术类型。

这种隐式转换是99%的时候,字符常量属于int类型的事实不是问题的原因;这些常量根据上下文进行适当转换。

(请注意,在C ++中,字符常量的类型为char。请记住,C和C ++是两种不同的语言。)