14

2.13.2/3

双引号"和问号?可以表示为它们本身,也可以表示为转义序列\"\?[...]。

简单地说,如下:

char x = '\?'; //or '\"'
char y = '?';  //or '"'

代表同一个字符。为什么要区别对待这两个(尤其是?)与其他字符?

4

1 回答 1

25

\"提供单引号字符文字和双引号字符串文字之间的一致性(它们被定义为使用相同的转义序列,因此\'可以\"在两者中使用)。我有点猜测,但我认为委员会只是认为在每个中定义不同的转义序列太麻烦了,没有任何好处,而且可以说是轻微的损害。

\?是为了避免三字母:??=是三字母,?\?=不是。

于 2012-06-28T09:07:49.440 回答