字符串字面量 (String Literal)
在需要内嵌字符串到源代码中使用
字符串字面量不能修改(通常实现为放在只读内存中)
形式如下:
cconst char* str = "hello world";
字符串字面量的类型为
char[N]
,其中 N 为字符串中字符的个数,包括空终止符\0
;演示存储方法
Unicode 的讲解,详见 Unicode
几种带编码前缀的字符串字面量(编码前缀指定其编码格式):
u8" "
:UTF-8u" "
:UTF-16U" "
:UTF-32L" "
:宽字符:在内存中用 Unicode 进行保存,输出的时候转化成多字节编码(相比之下,UTF-8 UTF-16 UTF-32 用多字节编码进行保存,较耗费存储空间)
字符串的拼接:
- 如果一个字符串字面量无编码前缀,则结果字符串字面量拥有有编码前缀的那个字符串指定的前缀
- C23 起不能拼接两个拥有不同编码前缀的字符串字面量(C23 前为实现定义行为)
locale 与
setlocale()