Types de variables en C++ : Mémoire, limites et opérations
Une variable nous fournit un stockage nommé que nos programmes peuvent manipuler. Chaque variable en C++ a un type spécifique, qui détermine la taille et la disposition de la mémoire de la variable ; la plage de valeurs qui peuvent être stockées dans cette mémoire ; et l'ensemble des opérations qui peuvent être appliquées à la variable.
Le nom d'une variable peut être composé de lettres, de chiffres et du caractère de soulignement. Il doit commencer par une lettre ou un soulignement. Les lettres majuscules et minuscules sont distinctes car C++ est sensible à la casse.
Voici les types de base de variables en C++ :
| N° | Type et description |
|---|---|
| 1 | bool Stocke soit la valeur true, soit false. |
| 2 | char Généralement un octet unique (un byte). C'est un type entier. |
| 3 | int La taille d'entier la plus naturelle pour la machine. |
| 4 | float Une valeur à virgule flottante à simple précision. |
| 5 | double Une valeur à virgule flottante à double précision. |
| 6 | void Représente l'absence de type. |
| 7 | wchar_t Un type caractère large. |
C++ permet également de définir divers autres types de variables, que nous aborderons dans les chapitres suivants comme Énumération, Pointeur, Tableau, Référence, Structures de données et Classes.
La section suivante couvrira comment définir, déclarer et utiliser divers types de variables.
Définition de variable en C++
Une définition de variable indique au compilateur où et quelle quantité de stockage créer pour la variable. Une définition de variable spécifie un type de données et contient une liste d'une ou plusieurs variables de ce type comme suit :
type liste_variables;
Ici, type doit être un type de données C++ valide incluant char, w_char, int, float, double, bool ou tout objet défini par l'utilisateur, etc., et liste_variables peut consister en un ou plusieurs noms d'identificateurs séparés par des virgules. Voici quelques déclarations valides :
int i, j, k; char c, ch; float f, salaire; double d;
La ligne int i, j, k; déclare et définit les variables i, j et k ; ce qui instruit le compilateur de créer des variables nommées i, j et k de type int.
Les variables peuvent être initialisées (assigner une valeur initiale) dans leur déclaration. L'initialisateur consiste en un signe égal suivi d'une expression constante comme suit :
type nom_variable = valeur;
Quelques exemples :
extern int d = 3, f = 5; // déclaration de d et f. int d = 3, f = 5; // définition et initialisation de d et f. byte z = 22; // définition et initialise z. char x = 'x'; // la variable x a la valeur 'x'.
Pour une définition sans initialiseur : les variables avec durée de stockage statique sont implicitement initialisées avec NULL (tous les octets ont la valeur 0) ; la valeur initiale de toutes les autres variables est indéfinie.
Déclaration de variable en C++
Une déclaration de variable assure au compilateur qu'il existe une variable avec le type et le nom donnés, de sorte que le compilateur puisse poursuivre la compilation sans avoir besoin de détails complets sur la variable. Une déclaration de variable a son sens au moment de la compilation seulement ; le compilateur a besoin de la définition réelle de la variable au moment de l'édition de liens du programme.
Une déclaration de variable est utile lorsque vous utilisez plusieurs fichiers et que vous définissez votre variable dans l'un des fichiers qui sera disponible au moment de l'édition de liens. Vous utiliserez le mot-clé extern pour déclarer une variable n'importe où. Bien que vous puissiez déclarer une variable plusieurs fois dans votre programme C++, elle ne peut être définie qu'une seule fois dans un fichier, une fonction ou un bloc de code.
Exemple
Essayez l'exemple suivant où une variable a été déclarée en haut, mais définie à l'intérieur de la fonction main :
#include <iostream>
using namespace std;
// Déclaration de variable :
extern int a, b;
extern int c;
extern float f;
int main() {
// Définition de variable :
int a, b;
int c;
float f;
// initialisation réelle
a = 10;
b = 20;
c = a + b;
cout << c << endl;
f = 70.0/3.0;
cout << f << endl;
return 0;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
30 23.3333
Le même concept s'applique à la déclaration de fonction où vous fournissez un nom de fonction au moment de sa déclaration et sa définition réelle peut être donnée n'importe où ailleurs. Par exemple :
// déclaration de fonction
int func();
int main() {
// appel de fonction
int i = func();
}
// définition de fonction
int func() {
return 0;
}
Lvalues et Rvalues
Il existe deux types d'expressions en C++ :
lvalue : Les expressions qui font référence à une emplacement mémoire sont appelées expressions « lvalue ». Une lvalue peut apparaître soit du côté gauche, soit du côté droit d'une affectation.
rvalue : Le terme rvalue fait référence à une valeur de données stockée à une certaine adresse en mémoire. Une rvalue est une expression à laquelle on ne peut pas assigner de valeur, ce qui signifie qu'une rvalue peut apparaître du côté droit mais pas du côté gauche d'une affectation.
Les variables sont des lvalues et peuvent donc apparaître du côté gauche d'une affectation. Les littéraux numériques sont des rvalues et ne peuvent donc pas être affectés et ne peuvent pas apparaître du côté gauche. Voici une instruction valide :
int g = 20;
Mais la suivante n'est pas une instruction valide et générerait une erreur à la compilation :
10 = 20;
Langue C
- Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
- Types de données primitifs en Java : Guide complet avec exemples
- Variables et types de données en C++ : Guide expert sur int, double, char, string, bool
- Opérateurs C++ expliqués : Types, exemples et programmes d'exemple
- Maîtriser les pointeurs en C++ : Concepts, exemples et applications pratiques
- Maîtriser le type char en C++ : Déclaration, ASCII et techniques de conversion
- Pointeurs en C : Guide complet sur les types, utilisation et bonnes pratiques
- Comprendre les Types de Variables en Java : Guide Complet
- Comprendre les variables en C : Types, règles de nommage et gestion mémoire