字符串常量是一对双撇号括起来的字符序列,例如:
"hello world." "A" "#12.89"
不要将字符常量和字符串常量混淆,字符串都是以’\0’结尾作为字符串结束标记, 所以’a’ 是字符常量,”a”是字符串常量,”a”是由两个字符’a’和’\0’组成的。
八进制数的转义序列在3个数字之后结束,或者在第一个非八进制数字符处结束。
十六进制数的转义序列则不限于3个数字,而是直到第一个非十六进制数字符截止。
例如:
"\1234" 包含2个字符:'\123' 和 '4'
"\189" 包含3个字符:'\1', '8', '9'
"\x81" 包含1个字符:'\x81'
可以用来分割任意长的符号。但如果用于字符串,则字面量会从下一行的起始位置继续。这样会破坏程序的缩进结构。
例如:
printf("hello \
world!");
编译器允许当两个字符串相连时,可以把它们合并成一个字符串。
例如:
"hello " "world" "!" => "hello world!"
printf("hello "
"world"
"!");
字符串的结尾是用一个转义序列 ‘\0’ 来表示的。
学会正确区分 ‘\0’,’0’,”0” 和数字 0
'\0' => 单个字符,ASCII码值为0,占1个字节
'0' => 单个字符,ASCII码值为0x30,占1个字节
"0" => 字符串,以'\0'结束,占2个字节
0 => 整型数,一般会占4个字节