Constantes caractère
Remonter à Présentation des constantes caractère - Index
Sommaire
Une constante caractère est composée d'un ou de plusieurs caractères délimités par des apostrophes, telle que 'A'
, '+'
ou '\n'
. Dans C, les constantes à caractère unique ont le type de données int. Dans C++, une constante caractère a pour type char. Les constantes à caractères multiples ont le type de données int dans C et C++.
Pour de plus amples informations sur les constantes caractère, voir les rubriques suivantes : Les trois types char, Séquences d'échappement, Constantes à caractères étendus et à caractères multiples, Littéraux et types de caractères Unicode (C++11).
Tailles des types de caractères dans C et C++
Pour comparer les tailles des types de caractères, compilez ceci en tant que programme C, puis en tant que programme C++.
#include <stdio.h>
#define CH 'x' /* A CHARACTER CONSTANT */
void main(void) {
char ch = 'x'; /* A char VARIABLE */
printf("\nSizeof int = %d", sizeof(int) );
printf("\nSizeof char = %d", sizeof(char) );
printf("\nSizeof ch = %d", sizeof(ch) );
printf("\nSizeof CH = %d", sizeof(CH) );
printf("\nSizeof wchar_t = %d", sizeof(wchar_t) );
}
Remarque : Les tailles sont exprimées en octets.
Tailles des types de caractères dans C et C++ :
Sortie après compilation en C | Sortie après compilation en C++ |
---|---|
Sizeof int = 4 |
Sizeof int = 4 |
Sizeof char = 1 |
Sizeof char = 1 |
Sizeof ch = 1 |
Sizeof ch = 1 |
Sizeof CH = 4 |
Sizeof CH = 1 |
Sizeof wchar_t = 2 |
Sizeof wchar_t = 2 |
Quatre types de littéraux caractère dans C++11
Par défaut, un littéral caractère dans C++ contient un caractère ANSI du type de données char. Dans C++ et C++11, vous pouvez utiliser le préfixe L
, devant un littéral caractère, pour spécifier que le littéral caractère doit contenir un caractère étendu du type de données wchar_t. Dans C++11, vous pouvez utiliser les préfixes u
et U
, devant un littéral caractère, pour spécifier que le littéral caractère doit contenir des caractères Unicode dans l'encodage UTF-16 (le type de données char16_t) ou UTF-32 (le type de données char32_t) (Littéraux et types de caractères Unicode (C++11)).
Par exemple, dans les programmes C++11, vous pouvez utiliser les littéraux caractère suivants :
'A'
- c'est le caractère ANSI du type de données char. Ce littéral caractère alloue un octet de mémoire.L'A'
- c'est le caractère étendu du type de données wchar_t. Ce littéral caractère alloue deux octets de mémoire.u'A'
- c'est le caractère Unicode encodé en UTF-16 du type de données char16_t. Ce littéral caractère alloue deux ou quatre octets de mémoire (selon que ce caractère appartient ou non au plan multilingue de base).U'A'
- c'est le caractère Unicode encodé en UTF-32 du type de données char32_t. Ce littéral caractère alloue quatre octets de mémoire.
Voir aussi
- Constantes
- Constantes entières
- Constantes à virgule flottante
- Les trois types char
- Séquences d'échappement
- Constantes à caractères étendus et à caractères multiples
- Littéraux et types de caractères Unicode (C++11)
- Constantes chaîne
- Constantes énumération
- Constantes et représentation interne
- Représentation interne des types numériques
- Expressions constantes