Constantes de Caracteres
Uma constante de caractere é escrita com aspas simples, como em 'c'
. No caso mais simples, c
é um único caractere ASCII que a constante deve representar. A constante tem o tipo int
, e seu valor é o código do caractere correspondente. Por exemplo, 'a'
representa o código do caractere para a letra ‘a’: 97, no caso.
Para colocar o caractere ‘'’ (aspas simples) na constante de caractere, use a barra invertida (‘\’) como escape. Essa constante de caractere fica assim: '\''
. A barra invertida aqui funciona como um caractere de escape, e tal sequência, começando com ‘\’, é chamada de sequência de escape.
Para colocar o caractere ‘\’ (barra invertida) na constante de caractere, use outra barra invertida como escape. Essa constante de caractere fica assim: '\\'
.
Aqui estão todas as sequências de escape que representam caracteres específicos em uma constante de caractere. Os valores numéricos mostrados são os códigos ASCII correspondentes, como números decimais:
'\a' ⇒ 7 /* alarme, CTRL-g */
'\b' ⇒ 8 /* backspace, BS, CTRL-h */
'\t' ⇒ 9 /* tabulação, TAB, CTRL-i */
'\n' ⇒ 10 /* nova linha, CTRL-j */
'\v' ⇒ 11 /* tabulação vertical, CTRL-k */
'\f' ⇒ 12 /* avanço de formulário, CTRL-l */
'\r' ⇒ 13 /* retorno de carro, RET, CTRL-m */
'\e' ⇒ 27 /* caractere de escape, ESC, CTRL-[ */
'\\' ⇒ 92 /* caractere de barra invertida, \ */
'\'' ⇒ 39 /* caractere de aspas simples, ' */
'\"' ⇒ 34 /* caractere de aspas duplas, " */
'\?' ⇒ 63 /* ponto de interrogação, ? */
‘\e’ é uma extensão do GNU C; para seguir o padrão C, escreva ‘\33’. (O número após a barra invertida é octal.) Para especificar uma constante de caractere usando decimal, use um cast; por exemplo, (unsigned char) 27
.
Você também pode escrever códigos de caracteres em octal e hexadecimal como ‘\octalcode’ ou ‘\xhexcode’. Decimal não é uma opção aqui, então códigos octais não precisam começar com ‘0’.
O valor da constante de caractere tem o tipo int
. No entanto, o código do caractere é tratado inicialmente como um valor do tipo char
, que é então convertido para int
. Se o código do caractere for maior que 127 (0177 em octal), o int
resultante pode ser negativo em uma plataforma onde o tipo char
tem 8 bits e é com sinal.
Atualizado
Isto foi útil?