2012-06-28 41 views
14

2.13.2/3讓`?`逃脫的理由是什麼?

雙引號"和問號?,可以被表示爲 自己或通過轉義序列\"\? [...]。

簡單地說,以下內容:

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

代表相同的字符。爲什麼對待這兩個(特別是?)與其他角色不同?

回答

24

\"給出單引號字符文字和雙引號字符串(他們定義爲使用相同的轉義序列,結果\'\"可以在兩個使用)之間的一致性。我略微猜測,但我認爲委員會認爲在每個轉義序列中定義不同的轉義序列太麻煩了,因爲沒有任何好處,並且可以說是輕微的損害。

\?是用於避免三字母:??=是三字母,?\?=不是。

+2

\?確實與trigraphs有關,請參閱http://msdn.microsoft.com/en-us/library/bt0y4awe.aspx以獲取解釋。 –