Utilisés pour représenter des nombres à virgule
Type | Taille | Précision | Intervalle de valeurs |
---|---|---|---|
float |
4 octets | minimum 6 chiffres significatifs | Plus petit positif : Plus petit négatif : |
double |
8 octets | minimum 10 chiffres significatifs | Plus petit positif : Plus petit négatif : |
long double |
10 octets | minimum 10 chiffres significatifs | Plus petit positif : Plus petit négatif : |
Utilisés pour représenter 1bit : 0 → false
ou 1 → true
Type | Taille |
---|---|
bool |
1 octet |
Bien que la donnée à mémoriser ne soit que d'1 bit, la place en mémoire d'un booléen en C++ est de 1 octet pour éviter les problèmes d'alignement avec les autres variables.
// Déclaration et initialisation d'entiers
int populationFrance {68'042'591};
int populationAlbi {49094};
Ici les '
servent à améliorer la lisibilité d'un grand nombre, Ce n'est utilisable qu'à partir du C++14.
// Déclaration et initialisation de caractères
char uneLettre {'A'};
char unChiffre {'9'}; // Le caractère '9', pas l'entier !
Les guillemets doubles sont réservés aux chaines de caractères !
// Déclaration et initialisation de flottants
float soldeCompte {2342.56};
double pibFrance {3.677579e15};
Ici le e
sert à faire une puissance de 10 : e15
=
// Déclaration et initialisation d'un booléen
bool etatBp {true};
cout << "Etat du Bouton Poussoir : " << etatBp << endl;
// Etat du Bouton Poussoir : 1
bool etatCapteur {false};
cout << "Etat du Capteur : " << etatCapteur << endl;
// Etat du Capteur : 0
L'utilisation d'une list initialization {}
pour une initialisation de variable permet de lever une erreur quand le contenu ne rentre pas dans la variable choisie. Ce que ne fait pas l'opérateur d'affectation style C =
short int populationFrance = 68'042'591; // Initialisation C Style
cout << populationFrance << endl;
// 16223
La valeur affectée n'est pas correcte, un short int
ne peut contenir 68 042 591 !
short int populationFrance {68'042'591};
cout << populationFrance << endl; // List Initialization
// ERROR: constant expression evaluates to 68042591 which cannot be narrowed to type 'short'
Le compilateur lève une erreur, il nous prévient que ça ne rentre pas dans la variable.
C++ fournit une fonction appelée sizeof()
permettant de connaitre la taille d'une variable ou d'un type :
cout << sizeof(int) << endl;
// 4
La fonction nous indique que sur ma machine un entier fait 4 octets
double valeur{0};
cout << sizeof(valeur) << endl;
// 8
La fonction nous indique que sur ma machine la variable valeur
fait 8 octets
C++ dans la bibliothèque climits
fournit les constantes : INT_MIN
, INT_MAX
, CHAR_MIN
...
Pour les flottants c'est la bibliothèque cfloat
qu'il faut inclure :
#include <iostream>
#include <climits> // Inclusion bibliothèque climits
#include <cfloat> // Inclusion bibliothèque cfloat
using namespace std;
int main() {
cout << INT_MIN << endl; // -2147483648
cout << FLT_DIG << endl; // 6
return 0;
}
Liens vers une liste de toutes les constantes disponibles : climits et cfloat
Comme les variables les constantes :
Mais, leurs valeurs ne peuvent pas changer durant l'exécution du programme !
Utilisation du mot clé const
:
const double pi {3.1415926};
const int moisAnnee {12};
pi = 3.1415926; // ERREUR du compilateur !