From 2.13.2/3
The double quote
"and the question mark?, can be represented as
themselves or by the escape sequences\"and\?[…].
Simply put, the following:
char x = '\?'; //or '\"'
char y = '?'; //or '"'
represent the same character. Why treat these two (especially ?) differently than other characters?
\"gives consistency between single-quoted character literals and double-quoted string literals (they’re defined to use the same escape sequences, as a result\'and\"can be used in both). I’m slightly guessing, but I reckon the committee just figured it was too much bother to define different escape sequences in each, for no benefit and arguably a slight detriment.\?is for avoiding trigraphs:??=is a trigraph,?\?=isn’t.