- 字符变量是存放字符常量的char类型的变量
- 字符常量是字面量,即单独出现在表达式中的字面上的字符,如 'a' 。
二者的重要区别为所占字节大小的不同,如下:
字符变量占1个字节,字符常量占4个字节(C语言中是如此,C++中字符常量也占1字节);
那么为何字符常量要占4个字节?
这是因为在C语言中整形字面量类型默认为 int,如 123 就被默认为 int 而非 short 或 long,而浮点数字面量默认为double 。
又因为在C语言中,并没有真正的字符类型,其底层仍然是整形,只不过是使用ASCII码将整形变成了字符,所以字符的本质就是整形。故字符常量,即字符字面量,就是整形字面量,其大小理所当然也为4个字节。