Some characters in the C/C++ basic character set are not available on all keyboards. Trigraphs were "invented" to enable these characters to be entered into C/ C++ source code using a sequence of three ISO 646 characters. More information is available in this Wikipedia: Digraphs and trigraphs article.
With gcc you have to use the --trigraph option to enable trigraph functionality.