Les variables simples peuvent être définies avec la syntaxe suivante :
type identificateur;
où type est le type de la variable et identificateur est son nom. Il est possible de créer et
d’initialiser une série de variables dès leur création avec la syntaxe suivante :
type identificateur[=valeur][, identificateur[=valeur][...]];
Exemple 1-8. Définition de variables
int i=0, j=0; /* Définit et initialise deux entiers à 0 */
double somme; /* Déclare une variable réelle */
Les variables peuvent être définies quasiment n’importe où dans le programme. Cela permet de ne
définir une variable temporaire que là où l’on en a besoin.
Note : Cela n’est vrai qu’en C++. En C pur, on est obligé de définir les variables au début des
fonctions ou des instructions composées (voir plus loin). Il faut donc connaître les variables temporaires
nécessaires à l’écriture du morceau de code qui suit leur définition.
La définition d’une variable ne suffit pas, en général, à l’initialiser. Les variables non initialisées
contenant des valeurs aléatoires, il faut éviter de les utiliser avant une initialisation correcte. Initialiser
les variables que l’on déclare à leur valeur par défaut est donc une bonne habitude à prendre. Cela est
d’ailleurs obligatoire pour les variables « constantes » que l’on peut déclarer avec le mot clé const,
car ces variables ne peuvent pas être modifiées après leur définition. Ce mot clé sera présenté en détail
dans la Section 3.2.
Note : Si les variables utilisant les types simples ne sont pas initialisées lors de leur définition
de manière générale, ce n’est pas le cas pour les objets dont le type est une classe définie
par l’utilisateur. En effet, pour ces objets, le compilateur appelle automatiquement une fonction
d’initialisation appelée le « constructeur » lors de leur définition. La manière de définir des classes
d’objets ainsi que toutes les notions traitant de la programmation objet seront décrites dans le
Chapitre 8.
La définition d’un tableau se fait en faisant suivre le nom de l’identificateur d’une paire de crochets,
contenant le nombre d’élément du tableau :
type identificateur[taille]([taille](...));
Note : Attention ! Les caractères ’[’ et ’]’ étant utilisés par la syntaxe des tableaux, ils ne signifient
plus les éléments facultatifs ici. Ici, et ici seulement, les éléments facultatifs sont donnés entre
parenthèses.
Dans la syntaxe précédente, type représente le type des éléments du tableau.
Exemple 1-9. Définition d’un tableau
int MonTableau[100];
MonTableau est un tableau de 100 entiers. On référence les éléments des tableaux en donnant l’indice
de l’élément entre crochet :
MonTableau[3]=0;
i=j=k=m=0; /* Annule les variables i, j, k et m. */
• les opérations de base du langage :
valeur op valeur
où op est l’un des opérateurs suivants : +, -, *, /, %, &, |, ^, ~, <<, >>.
Note : ’/’ représente la division euclidienne pour les entiers et la division classique pour les
flottants.
’%’ représente la congruence (c’est-à-dire le reste de la division euclidienne). ’|’ et ’&’ représentent
respectivement le ou et le et binaire (c’est-à-dire bit à bit : 1 et 1 = 1, 0 et x = 0, 1 ou x = 1 et 0 ou 0
= 0). ’^’ représente le ou exclusif (1 xor 1 = 0, 0 xor 0 = 0 et 1 xor 0 = 1). ’~’ représente la négation
binaire (1 devient 0 et vice versa). ’<<’ et ’>>’ effectuent un décalage binaire vers la gauche et la
droite respectivement, d’un nombre de bits égal à la valeur du second opérande.
• les opérations des autres opérateurs du langage. Le C et le C++ disposent d’opérateurs un peu
plus évolués que les opérateurs permettant de réaliser les opérations de base du langage. Ces opérateurs
sont les opérateurs d’incrémentation et de décrémentation ++ et --, l’opérateur ternaire
d’évaluation conditionnelle d’une expression (opérateur ?:) et l’opérateur virgule (opérateur ,).
La syntaxe de ces opérateurs est décrite ci-dessous.
• les appels de fonctions. Nous verrons comment écrire et appeler des fonctions dans les sections
suivantes.
Bien entendu, la plupart des instructions contiendront des affectations. Ce sont donc sans doute les
affectations qui sont les plus utilisées parmi les diverses opérations réalisables, aussi le C et le C++
permettent-ils l’utilisation d’affectations composées. Une affectation composée est une opération permettant
de réaliser en une seule étape une opération normale et l’affectation de son résultat dans la
variable servant de premier opérande. Les affectations composées utilisent la syntaxe suivante :
variable op_aff valeur
où op_aff est l’un des opérateurs suivants : ’+=’, ’-=’, ’*=’, etc. Cette syntaxe est strictement équivalente
à :
variable = variable op valeur
et permet donc de modifier la valeur de variable en lui appliquant l’opérateur op.
Exemple 1-11. Affectation composée
i*=2; /* Multiplie i par 2 : i = i * 2. */
Les opérateurs d’incrémentation et de décrémentation ++ et -- s’appliquent comme des préfixes ou
des suffixes sur les variables. Lorsqu’ils sont en préfixe, la variable est incrémentée ou décrémentée,
Il est possible de créer des instructions composées, constituées d’instructions plus simples. Les instructions
composées se présentent sous la forme de bloc d’instructions où les instructions contenues
sont encadrées d’accolades ouvrantes et fermantes (caractères ’{ et ’}’).
Exemple 1-12. Instruction composée
{
i=1;
j=i+3*g;
}
Note : Un bloc d’instructions est considéré comme une instruction unique. Il est donc inutile de
mettre un point virgule pour marquer l’instruction, puisque le bloc lui-même est une instruction.
Enfin, il existe tout un jeu d’instructions qui permettent de modifier le cours de l’exécution du programme,
comme les tests, les boucles et les sauts. Ces instructions seront décrites en détail dans le
chapitre traitant des structures de contrôle.
type identificateur;
où type est le type de la variable et identificateur est son nom. Il est possible de créer et
d’initialiser une série de variables dès leur création avec la syntaxe suivante :
type identificateur[=valeur][, identificateur[=valeur][...]];
Exemple 1-8. Définition de variables
int i=0, j=0; /* Définit et initialise deux entiers à 0 */
double somme; /* Déclare une variable réelle */
Les variables peuvent être définies quasiment n’importe où dans le programme. Cela permet de ne
définir une variable temporaire que là où l’on en a besoin.
Note : Cela n’est vrai qu’en C++. En C pur, on est obligé de définir les variables au début des
fonctions ou des instructions composées (voir plus loin). Il faut donc connaître les variables temporaires
nécessaires à l’écriture du morceau de code qui suit leur définition.
La définition d’une variable ne suffit pas, en général, à l’initialiser. Les variables non initialisées
contenant des valeurs aléatoires, il faut éviter de les utiliser avant une initialisation correcte. Initialiser
les variables que l’on déclare à leur valeur par défaut est donc une bonne habitude à prendre. Cela est
d’ailleurs obligatoire pour les variables « constantes » que l’on peut déclarer avec le mot clé const,
car ces variables ne peuvent pas être modifiées après leur définition. Ce mot clé sera présenté en détail
dans la Section 3.2.
Note : Si les variables utilisant les types simples ne sont pas initialisées lors de leur définition
de manière générale, ce n’est pas le cas pour les objets dont le type est une classe définie
par l’utilisateur. En effet, pour ces objets, le compilateur appelle automatiquement une fonction
d’initialisation appelée le « constructeur » lors de leur définition. La manière de définir des classes
d’objets ainsi que toutes les notions traitant de la programmation objet seront décrites dans le
Chapitre 8.
La définition d’un tableau se fait en faisant suivre le nom de l’identificateur d’une paire de crochets,
contenant le nombre d’élément du tableau :
type identificateur[taille]([taille](...));
Note : Attention ! Les caractères ’[’ et ’]’ étant utilisés par la syntaxe des tableaux, ils ne signifient
plus les éléments facultatifs ici. Ici, et ici seulement, les éléments facultatifs sont donnés entre
parenthèses.
Dans la syntaxe précédente, type représente le type des éléments du tableau.
Exemple 1-9. Définition d’un tableau
int MonTableau[100];
MonTableau est un tableau de 100 entiers. On référence les éléments des tableaux en donnant l’indice
de l’élément entre crochet :
MonTableau[3]=0;
i=j=k=m=0; /* Annule les variables i, j, k et m. */
• les opérations de base du langage :
valeur op valeur
où op est l’un des opérateurs suivants : +, -, *, /, %, &, |, ^, ~, <<, >>.
Note : ’/’ représente la division euclidienne pour les entiers et la division classique pour les
flottants.
’%’ représente la congruence (c’est-à-dire le reste de la division euclidienne). ’|’ et ’&’ représentent
respectivement le ou et le et binaire (c’est-à-dire bit à bit : 1 et 1 = 1, 0 et x = 0, 1 ou x = 1 et 0 ou 0
= 0). ’^’ représente le ou exclusif (1 xor 1 = 0, 0 xor 0 = 0 et 1 xor 0 = 1). ’~’ représente la négation
binaire (1 devient 0 et vice versa). ’<<’ et ’>>’ effectuent un décalage binaire vers la gauche et la
droite respectivement, d’un nombre de bits égal à la valeur du second opérande.
• les opérations des autres opérateurs du langage. Le C et le C++ disposent d’opérateurs un peu
plus évolués que les opérateurs permettant de réaliser les opérations de base du langage. Ces opérateurs
sont les opérateurs d’incrémentation et de décrémentation ++ et --, l’opérateur ternaire
d’évaluation conditionnelle d’une expression (opérateur ?:) et l’opérateur virgule (opérateur ,).
La syntaxe de ces opérateurs est décrite ci-dessous.
• les appels de fonctions. Nous verrons comment écrire et appeler des fonctions dans les sections
suivantes.
Bien entendu, la plupart des instructions contiendront des affectations. Ce sont donc sans doute les
affectations qui sont les plus utilisées parmi les diverses opérations réalisables, aussi le C et le C++
permettent-ils l’utilisation d’affectations composées. Une affectation composée est une opération permettant
de réaliser en une seule étape une opération normale et l’affectation de son résultat dans la
variable servant de premier opérande. Les affectations composées utilisent la syntaxe suivante :
variable op_aff valeur
où op_aff est l’un des opérateurs suivants : ’+=’, ’-=’, ’*=’, etc. Cette syntaxe est strictement équivalente
à :
variable = variable op valeur
et permet donc de modifier la valeur de variable en lui appliquant l’opérateur op.
Exemple 1-11. Affectation composée
i*=2; /* Multiplie i par 2 : i = i * 2. */
Les opérateurs d’incrémentation et de décrémentation ++ et -- s’appliquent comme des préfixes ou
des suffixes sur les variables. Lorsqu’ils sont en préfixe, la variable est incrémentée ou décrémentée,
Il est possible de créer des instructions composées, constituées d’instructions plus simples. Les instructions
composées se présentent sous la forme de bloc d’instructions où les instructions contenues
sont encadrées d’accolades ouvrantes et fermantes (caractères ’{ et ’}’).
Exemple 1-12. Instruction composée
{
i=1;
j=i+3*g;
}
Note : Un bloc d’instructions est considéré comme une instruction unique. Il est donc inutile de
mettre un point virgule pour marquer l’instruction, puisque le bloc lui-même est une instruction.
Enfin, il existe tout un jeu d’instructions qui permettent de modifier le cours de l’exécution du programme,
comme les tests, les boucles et les sauts. Ces instructions seront décrites en détail dans le
chapitre traitant des structures de contrôle.



Aucun commentaire:
Enregistrer un commentaire