The C source code character set is a superset of the ISO 646-1983
Invariant Code Set. To enable programs to be represented in the
reduced set, trigraph sequences are defined
to represent those characters not in the reduced set. A trigraph
is a three character sequence that is replaced by a corresponding
single character. Table 7-2 gives the complete list of trigraph
sequences and their replacement characters.
Table 7-2 Trigraph
Sequences and Replacement Characters 
Trigraph Sequence   | Replacement   | 
|---|
??=  | #  | 
??/  | \  | 
??'  | ^  | 
??(  | [  | 
??)  | ]  | 
??!  | |  | 
??<  | {  | 
??>  | }  | 
??-  | ~  | 
 
Any ? that
does not begin one of the trigraphs listed above is not changed.