Un type entier particulier, nommé char
, est utilisé pour les caractères. Il comprend toutes les valeurs ASCII de 0
à 255
. Il y a trois moyens de donner une valeur constante à un caractère. La première consiste à écrire le caractère entre apostrophes :
char c = 'E';
On ne peut écrire une apostrophe seule de cette manière. Il faut utiliser la deuxième ou la troisième méthode. La deuxième est un ensemble de caractères spéciaux signalés par une barre oblique inverse \, dont voici la liste :
Caractère | Description | Code ASCII |
'\a' | signal sonore | 7 |
'\b' | espace arrière | 8 |
'\f' | saut de page | 12 |
'\n' | nouvelle ligne | 10 |
'\r' | retour chariot | 13 |
'\t' | tabulation | 9 |
'\v' | tabulation verticale | 11 |
'\\' | barre oblique inverse \ | 92 |
'\'' | apostrophe ' | 39 |
'\"' | guillemet " | 34 |
'\?' | point dinterrogation ? | 63 |
Les deux derniers peuvent être écrits sans barre oblique inverse : '"'
et '?'
.
La troisième méthode consiste à donner directement la valeur ASCII du caractère soit en octal soit la forme '\nnn'
où nnn
désigne un nombre octal (sans 0
initial obligatoire), soit en hexadécimal sous la forme '\xhh'
où hh
désigne un nombre en hexadécimal. On a donc par exemple les identités :
'?' == '\?' == '\77' == '\x3F'
car il s'agit du 63ème caractère de la table ASCII, et que 63 == 077 = 0x3F. Il ny a pas dopération spécifique sur les caractères, qui sont considérés comme des entiers par le compilateur. Dans ces opérations, un octet de poids fort est ajouté au caractère pour obtenir un entier sur deux octets. Donc (char)63
donne encore '?'
.
Notons quil existe des types unsigned char
et signed char
. Par défaut, le type char
signifie signed char
, cest-à-dire que loctet de poids fort, quand il existe, est égal à -1 lorsque le caractère est supérieur ou égal à 128, mais on dispose dune option de compilation demandant de le considérer comme unsigned
; dans ce cas, loctet de poids fort est toujours nul.
Précédent | Sommaire | Suivant |