Variables, types de données et auto en C++
Apprenez les variables, types de données et le mot-clé auto en C++ avec des exemples de déduction de type.
Dans les programmes C++, les variables sont utilisées pour stocker et manipuler des données.
Chaque variable possède un type de donnée qui détermine la quantité de mémoire utilisée
et le type de valeurs qu’elle peut contenir.
Cet article explique les types de données de base en C++,
les règles de déclaration des variables
et l’utilisation du mot-clé moderne auto introduit dans C++11.
1. Qu’est-ce qu’une variable ?
Une variable est une zone de mémoire nommée servant à stocker une valeur. Pendant l’exécution du programme, cette valeur peut être lue ou modifiée.
int age = 25;
double pi = 3.14159;
char lettre = 'A';
bool actif = true;
Chaque variable possède un type différent et occupe une quantité de mémoire spécifique.
2. Types de données de base
Voici les principaux types de données en C++ :
| Type | Description | Exemple |
|---|---|---|
int | Entiers (positifs ou négatifs) | int nombre = 42; |
double | Nombre à virgule flottante | double taux = 0.75; |
char | Un seul caractère | char symbole = 'X'; |
bool | Valeur logique (true / false) | bool actif = true; |
string | Chaîne de caractères (texte) | string nom = "Ahmet"; |
Le type string est fourni par la bibliothèque <string> :
#include <iostream>
#include <string>
using namespace std;
int main() {
string nom = "Ali";
cout << "Bonjour " << nom << endl;
return 0;
}
3. Règles de déclaration des variables
- Les noms de variables peuvent contenir des lettres, des chiffres et des traits de soulignement (
_). - Ils ne peuvent pas commencer par un chiffre.
- Évitez les caractères spéciaux ou accentués.
- La casse est significative :
nombreetNombresont différents.
Exemples valides et invalides :
// Valide
int nombre_etudiants = 30;
double prixTotal = 99.50;
// Invalide
int 2pommes = 5; // ne peut pas commencer par un chiffre
int classe = 10; // caractères spéciaux non autorisés
int double = 7; // mot-clé réservé
4. Constantes (const)
Si vous souhaitez qu’une variable garde la même valeur pendant toute l’exécution du programme,
utilisez le mot-clé const.
const double PI = 3.14159;
const int MAX_ETUDIANTS = 40;
// PI = 3.14; // erreur ! les constantes ne peuvent pas être modifiées
5. Conversion de type (Type Casting)
En C++, il est possible de convertir une valeur d’un type vers un autre.
int x = 10;
double y = 3.0;
double resultat = x / y; // conversion automatique (int → double)
cout << resultat; // 3.33333
Pour une conversion explicite, on peut utiliser static_cast :
int somme = 5;
int nombre = 2;
double moyenne = static_cast<double>(somme) / nombre;
cout << moyenne; // 2.5
6. Le mot-clé auto (C++11+)
Introduit avec C++11, le mot-clé auto permet au compilateur de déterminer automatiquement
le type de la variable à partir de la valeur qui lui est affectée.
auto nombre = 10; // int
auto taux = 3.14; // double
auto texte = "Bonjour"; // const char*
auto actif = true; // bool
Cette fonctionnalité améliore la lisibilité du code, surtout lorsqu’on travaille avec des types complexes (comme les itérateurs ou les types basés sur des modèles).
7. Le mot-clé decltype (C++11+)
decltype permet de déclarer une nouvelle variable du même type qu’une expression existante.
int a = 5;
decltype(a) b = 10; // b est aussi de type int
Utilisé conjointement avec auto, il permet d’écrire un code flexible et sûr au niveau des types.
8. Exemple : Calcul de la moyenne des notes
L’exemple suivant combine différents types de données,
l’utilisation de auto et la conversion de type.
#include <iostream>
using namespace std;
int main() {
int note1 = 85;
int note2 = 90;
int note3 = 78;
auto moyenne = static_cast<double>(note1 + note2 + note3) / 3;
cout << "Moyenne : " << moyenne << endl;
return 0;
}
9. TL;DR
- Chaque variable a un type qui détermine la taille mémoire et la plage de valeurs.
- Les constantes déclarées avec
constne peuvent pas être modifiées. static_cast<>permet une conversion de type sécurisée.autodétermine automatiquement le type d’une variable.- Les exemples peuvent être exécutés avec Visual Studio 2022 ou GCC 11+.