2025-11-15 00:01:31
字符常量是用单引号括起来的单个字符,比如'a'或'中',占1个字节存储。字符串常量用双引号括起来,比如"hello"或"你好",里面包含多个字符,会自动加一个换行符结束。字符常量只能存一个字符,字符串常量能存多个字符,但都要算上那个看不见的换行符。比如字符'a'存成二进制是61h,占1字节;字符串"ab"存成61h62h0ah,占3字节。
为什么这样呢?因为C语言设计的时候,字符常量是直接存到内存的,像存个苹果一样单独放。字符串常量其实是存了个字符数组,每个字符占1字节,必须有个换行符告诉程序这个字符串结束在哪里。比如存"ab"的时候,先放a的61h,再放b的62h,补0ah换行符。这样程序读的时候才能知道什么时候停止读取。数据手册里写着,字符占1字节,字符串占字符数+1字节。比如存5个字符的字符串,实际占6字节。所以字符常量适合存单个符号,字符串常量适合存完整句子。,比如“字符常量只能存单个字符”变成“字符常量只能存单个字符”,或者“字符串常量包含换行符”变成“字符串常量包含换行符”。
本题链接: