字符串常量就是由一对单引号括起来的单个字符,例如:‘a’,‘D’.在C语言中,除了字符常量外还有字符串常量,顾名思义就是多个"字符"串在一起的意思,与字符常量有所不同呢,字符串常量是用双引号括起来的,比如:“i love you”
一个字符在内存中占用一个字节,而字符串本质上是多个字符组成字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动添加’\0’作为该字符串的“结束标志”,系统根据此标志判断字符串是否结束。
'\0’是ASCII码为0的字符,他不会引起任何控制动作,也不会是一个可以显示的字符,比如字符串常量“CHINA”,表面上看他只有 5 个字符,但是实际上他的内存中占6个字符,“C”, “H”, “I”, “N”, “A”, "\0"各占一个字节。
也就是说,在字符串常量中,如果"双引号"中能够看见的字符串有 n 个,那么该字符串在内存中所占的内存空间为 n+1 字节。
#include<stdio.h> int main(void) { printf("%d\x20", sizeof("")); printf("%d\x20", sizeof("a")); printf("%d\x20", sizeof("CHINA")); printf("%d\x20", sizeof("How are you?")); printf("%d\x20", sizeof("I love you")); printf("%d\x20", sizeof("你好")); return 0; }一个中文字符占3个字节,再加上"\0",就是 7 个字节。