允许转义符“?”的原理是什么?

14

来自2.13.2/3

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

简单地说,以下内容:

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

这两个字符表示相同的字符。为什么会将它们(尤其是 ?)与其他字符区别对待?

1个回答

25

\"使得单引号字符字面值和双引号字符串字面值保持一致(它们被定义为使用相同的转义序列,因此\'\"在两者中都可以使用)。 我有些猜测,但我认为委员会只是觉得在每个地方定义不同的转义序列太麻烦了,没有好处,甚至可能稍微劣一些。

\?用于避免三字符组: ??=是一个三字符组,而?\?=则不是。


2
? 确实与三字符组有关,请参见 http://msdn.microsoft.com/zh-cn/library/bt0y4awe.aspx 了解详细说明。 - Len Holgate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接