我正在阅读this并找到了逃生\?
。究竟是什么意思逃脱了?字符串中的文字?
(我仍然看不出原因)或者这是我不知道的BNF语法规则?
答案 0 :(得分:2)
它指定一个文字问号。见http://en.wikipedia.org/wiki/Digraphs_and_trigraphs
反斜杠用作标记字符,告诉编译器/解释器下一个字符具有某些特殊含义。下一个字符意味着什么取决于实现。例如,C风格的语言使用\n
表示换行符,\t
表示标签符。
使用" escape"实际上意味着暂时逃避解析文本并进入另一种模式,其中后续角色的处理方式不同。
答案 1 :(得分:1)
它用于名为trigraphs的功能,它指定问号。使用此功能,您可以编写以问号开头的三字符序列来替换另一个字符
来自C11
C11§6.4.4.4字符常量第4节
双引号和问号?可以表示 它们本身或由转义序列分别为“和”,但是 单引号'和反斜杠\应分别表示, 通过转义序列\'和\。