我的博客

2、词法分析--4、字面值--1、字符串和字节串

目 录

1、字符串和字节串

1.1 描述

两种串值都使用成对单引号或双引号来表示首尾,也可以使用三引号来表示。

1.2 字符串的转义

反斜杠 (\) 字符被用来对特殊含义的字符进行转义。

1.3 字节字符串

字符串带有前缀 'b''B'。字节串只能包含ASCII字符,字节对应数值在128以内。

1.4 原始字符串

字符串带有前缀 'r''R'。原始字符串中的反斜杠会被当做字面字符来处理。

1.5 格式化字符串

字符串前缀带有 'f''F'

'f' 可与 'r' 连用,但不能与 'b''u' 连用,因此存在原始格式化字符串,但不存在字节字符串。

1.6 转义序列

转义序列 意义 注释
\newline 反斜杠加换行全被忽略
\\ 反斜杠 (\)
\' 单引号 (')
\" 双引号 (")
\a ASCII 响铃 (BEL)
\b ASCII 退格 (BS)
\f ASCII 进纸 (FF)
\n ASCII 换行 (LF)
\r ASCII 回车 (CR)
\t ASCII 水平制表 (TAB)
\v ASCII 垂直制表 (VT)
\ooo 八进制数 ooo 码位的字符 (1,3)
\xhh 十六进制数 hh 码位的字符 (2,3)

1.6.1 仅在字节字符串中可用的转义序列

转义序列 意义 注释
\N{name} Unicode 数据库中名称为 name 的字符 (4)
\uxxxx 16位十六进制数 xxxx 码位的字符 (5)
\Uxxxxxxxx 32位16进制数 xxxxxxxx 码位的字符 (6)

1.6.2 注释

  1. 与标准 C 一致,接受最多三个八进制数码。
  2. 与标准 C 不同,要求必须为两个十六进制数码。
  3. 在字节串字面值中,十六进制数和八进制数转义码以相应数值代表每个字节。在字符串字面值中,这些转义码以相应数值代表每个 Unicode 字符。
  4. 在 3.3 版更改: 加入了对别名 1 的支持。
  5. 要求必须为四个十六进制数码。
  6. 此方式可用来表示任意 Unicode 字符。要求必须为八个十六进制数码。

2、通用转义序列

转义序列 意义 注释
\newline 反斜杠加换行全被忽略
\\ 反斜杠(\)
\' 单引号(')
\" 双引号(")
\a ASCII响铃(BEL)
\b ASCII退格(BS)
\f ASCII进纸(FF)
\n ASCII换行(LF)
\r ASCII回车(CR)
\t ASCII水平制表(TAB)
\v ASCII垂直制表(VT)
\ooo 八进制ooo码位字符
\xhh 十六进纸hh码位字符
posted @ 2020-01-31 09:34  姜道义  阅读(498)  评论(0编辑  收藏  举报