Types fondamentaux (taille minimum/taille exacte en octets)

Nombres en virgule flottante

  • float (4)
  • double (8)
  • long double (8)

Booléens

  • bool (1)

Caractères

  • char (1/1)
  • wchar_t (1)
  • char8_t (C++20) (1)
  • char16_t (C++11) (2)
  • char32_t (C++11) (4)

Entiers

  • short (2)
  • int (2)
  • long (4)
  • long long (C++11) (8)
  • std::int8_t (C99)(1/1) et std::uint8_t (C99)(1/1) unsigned
  • std::int16_t (C99)(2/2) et std::uint16_t (C99)(2/2) unsigned
  • std::int32_t (C99)(4/4) et std::uint32_t (C99)(4/4) unsigned
  • std::int64_t (C99)(8/8) et std::uint64_t (C99)(8/8) unsigned
  • std::int_fast8_t (C99)(1) et std::uint_fast8_t (C99)(1) unsigned
  • std::int_fast16_t (C99)(2) et std::uint_fast16_t (C99)(2) unsigned
  • std::int_fast32_t (C99)(4) et std::uint_fast32_t (C99)(4) unsigned
  • std::int_fast64_t (C99)(8) et std::uint_fast64_t (C99)(8) unsigned
  • std::int_least8_t (C99)(1) et std::uint_least8_t (C99)(1) unsigned
  • std::int_least16_t (C99)(2) et std::uint_least16_t (C99)(2) unsigned
  • std::int_least32_t (C99)(4) et std::uint_least32_t (C99)(4) unsigned
  • std::int_least64_t (C99)(8) et std::uint_least64_t (C99)(8) unsigned

Note : les types std:: sont disponibles dans <cstdint>

Autres

  • std::nullptr_t (C++11)
  • void
  • std::size_t (disponible dans <cstddef>)
    ## Littéraux

Numériques : le type peut être précisé par suffixe :

  • u ou U : unsigned int
  • l ou L : long ou long double
  • ul, uL, Ul, UL, lu, lU, Lu, ou LU : unsigned long
  • ll ou LL : long long
  • ull, uLL, Ull, ULL, llu, llU, LLu, ou LLU : unsigned long long
  • f ou F : float

Préfixé par un 0, un littéral est interprété comme de l'octal.
Préfixé par un 0x, un littéral est interprété comme de l'hexadécimal.
Préfixé par un 0b, un littéral est interprété comme du binaire.
Chaînes : deux chaînes littérales sont automatiquement concaténées par le compilateur.

Types utilisateur

On peut définir ses propres types avec l'opérateur typedef ou avec using:

typedef double vitesse_t;
using vitesse_t = double;

Note 1 : par convention, on suffixe les noms des types avec _t.
Note 2 : la version avec using est plus lisible/compréhensible.

Typage automatique

Il est également possible de typer automatiquement une variable quand elle est définie avec le mot clé auto. Par exemple :

auto n = 5;
auto s{"une chaine"};
auto x{ new Complex(5.0,3.2) };