在 C 语言中,字符常量如 'a'、'D' 由单撇号括起来,而字符串常量如 "How are you" 则由双撇号包含多个字符。字符串本质上是字符数组,每个字符串末尾自动添加一个特殊字符 '\0' 作为结束标志,它不是人为添加的,ASCII 码值为 0。例如,字符串 "CHINA" 实际上占 6 字节,由 'C'、'H'、'I'、'N'、'A' 和 '\0' 组成。输出字符串时,'\0' 不会被显示,仅显示前 n 个可见字符,n 代表实际字符数加上 '\0'。例如,"I love you" 占 11 字节,包括 10 个可见字符和 '\0'。值得注意的是,字符串常量的内存占用并非仅看可见字符数,如 "你好" 占 5 字节,因为中文字符占用 2 字节。C 语言没有特定的字符串数据类型,但 C++ 和 Java 等语言提供了相应支持。尝试将字符串常量赋给字符变量是不允许的,因为字符变量只能存储单个字符,而字符串常量包含了多个字符。这与字符变量的存储机制和字符串常量的性质不符。