C 参考手册
- C 语言
- C 的历史
- 基本概念
- 表达式
- 声明
- 初始化
- 函数
- 语句
- 静态断言
- 字符常量
- 函数声明
- 函数定义
- 转义序列
- 翻译阶段
- 标识符
- 作用域
- 生存期
- 查找与命名空间
- ASCII 码表
- 类型
- 遵从性
- 算术类型
- restrict 类型限定符
- 类型
- 对象与对齐
- 主函数
- 未定义行为
- 内存模型
- if 语句
- switch 语句
- for 循环
- while 循环
- do-while 循环
- continue语句
- break 语句
- goto语句
- return 语句
- 值类别
- 求值顺序
- 整数常量
- 浮点常量
- 字符串字面量
- 复合字面量
- 常量表达式
- 隐式转换
- 成员访问运算符
- 逻辑运算符
- 比较运算符
- 算术运算符
- 赋值运算符
- 自增/自减运算符
- 其他运算符
- sizeof 运算符
- _Alignof 运算符
- 转型运算符
- C 运算符优先级
- 泛型选择
- 标量初始化
- 数组初始化
- 结构体与联合体初始化
- 指针声明
- 数组声明
- 枚举
- 存储类指定符
- const 类型限定符
- volatile 类型限定符
- 结构体声明
- 联合体声明
- 位域
- _Alignas
- typedef 声明
- 原子类型
- 外部及试探性定义
- inline 函数指定符
- _Noreturn 函数指定符
- 变长参数
- 内联汇编
- 可分析性
- 替用运算符及记号
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 算法
- 数值
- 文件输入/输出
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
转义序列
下列转义序列可用。 ISO C 要求诊断是否有任何不列于此的字符后随反斜杠:
转义序列 | 描述 | 表示 |
---|---|---|
\'
|
单引号 | 字节 0x27 ( ASCII 编码)
|
\"
|
双引号 | 字节 0x22 ( ASCII 编码)
|
\?
|
问号 | 字节 0x3f ( ASCII 编码)
|
\\
|
反斜杠 | 字节 0x5c ( ASCII 编码)
|
\a
|
响铃 | 字节 0x07 ( ASCII 编码)
|
\b
|
退格 | 字节 0x08 ( ASCII 编码)
|
\f
|
换页 | 字节 0x0c ( ASCII 编码)
|
\n
|
换行 | 字节 0x0a ( ASCII 编码)
|
\r
|
回车 | 字节 0x0d ( ASCII 编码)
|
\t
|
水平制表 | 字节 0x09 ( ASCII 编码)
|
\v
|
垂直制表 | 字节 0x0b ( ASCII 编码)
|
\nnn
|
任意八进制值 | 字节 nnn
|
\xnn
|
任意十六进制值 | 字节 nn
|
\unnnn (C11 起) |
不在基本字符集中的 Unicode 字符。 可能生成多个字符。 |
编码位 U+nnnn
|
\Unnnnnnnn (C11 起) |
不在基本字符集中的 Unicode 字符。 可能生成多个字符。 |
编码位 U+nnnnnnnn
|
注意
八进制转义序列中 \0
最有用,因为它表示空终止字符串中的空终止字符。
换行符 \n
在用于文本模式 I/O 时有特殊含义:它被转换为 OS 限定的换行表示,通常是字节或字节序列。某些系统替而用长度域标记其文本行。
八进制转义序列拥有三个八进制位的长度限制,但若提前遇到不是合法八进制位的字符,则在首个这种字符处终止。
十六进制转义序列无长度限制,并在首个不是合法十六进制位的字符处终止。若单个十六进制转义序列所表示的值不适于此字符串字面量或字符常量中使用的字符类型( char 、 char16_t 、 char32_t 或 wchar_t ),则结果未指定。
窄字符串字面量或 16 位字符串字面量中的通用字符名可能映射到多于一个字符,例如 \U0001f34c 在 UTF-8 中是 4 个 char 编码单元( \xF0\x9F\x8D\x8C ),而在 UTF-16 中是 2 个 char16_t 编码单元( \uD83C\uDF4C )。
问号转义序列 \? 用于阻止在字符串字面量内转译三标符:如 "??/" 的字符串被编译成 "\" ,但若如在 "?\?/" 中转义第二个问号,则它变为 "??/" 。
示例
运行此代码
#include <stdio.h> int main(void) { printf("This\nis\na\ntest\n\nShe said, \"How are you?\"\n"); }
输出:
This is a test She said, "How are you?"
引用
- C11 standard (ISO/IEC 9899:2011):
- 5.2.2 Character display semantics (p: 24-25)
- 6.4.4.4 Character constants (p: 67-70)
- C99 standard (ISO/IEC 9899:1999):
- 5.2.2 Character display semantics (p: 19-20)
- 6.4.4.4 Character constants (p: 59-61)
- C89/C90 standard (ISO/IEC 9899:1990):
- 2.2.2 Character display semantics
- 3.1.3.4 Character constants