Character literals

suggest change

Character literals are a special type of integer literals that are used to represent one character. They are enclosed in single quotes, e.g. 'a' and have the type int. The value of the literal is an integer value according to the machine’s character set. They do not allow suffixes.

The L prefix before a character literal makes it a wide character of type wchar_t. Likewise since C11 u and U prefixes make it wide characters of type char16_t and char32_t, respectively.

When intending to represent certain special characters, such as a character that is non-printing, escape sequences are used. Escape sequences use a sequence of characters that are translated into another character. All escape sequences consist of two or more characters, the first of which is a backslash \\. The characters immediately following the backslash determine what character literal the sequence is interpreted as.

Escape Sequence | Represented Character | ————— | ——————— |\b | Backspace |\f | Form feed |\n | Line feed (new line) |\r | Carriage return |\t | Horizontal tab |\v | Vertical tab |\\ | Backslash |\' | Single quotation mark |\" | Double quotation mark |\? | Question mark |\nnn | Octal value |\xnn… | Hexadecimal value |

Escape Sequence | Represented Character | ————— | ——————— |\a | Alert (beep, bell) |

Escape Sequence | Represented Character | ————— | ———————— |\unnnn | Universal character name |\Unnnnnnnn | Universal character name |

A universal character name is a Unicode code point. A universal character name may map to more than one character. The digits n are interpreted as hexadecimal digits. Depending on the UTF encoding in use, a universal character name sequence may result in a code point that consists of multiple characters, instead of a single normal char character.

When using the line feed escape sequence in text mode I/O, it is converted to the OS-specific newline byte or byte sequence.

The question mark escape sequence is used to avoid trigraphs. For example, ??/ is compiled as the trigraph representing a backslash character '\', but using ?\?/ would result in the string "??/".

There may be one, two or three octal numerals n in the octal value escape sequence.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents