6. Opérateurs et expressions en С++

• Opérateurs en С++
- Opérateurs arithmétiques
- Opérateurs logiques
- Opérateurs relationnels
- Affectation
- Conversion du type de l'opérande
- Opérateur conditionnel
- Opérateur virgule
• Expressions en C++. Priorité des opérateurs
• Conversion du type implicite
• Exemples et tâches


 
 

Affectation


L’affectation est désignée par le signe = . C’est un opérateur binaire. Il a la vue suivante:

variable = opérande

L'affectation est un opérateur où la variable à la gauche prend la valeur de l’opérande à droite. Si on ajoute ; / le point virgule / à la fin de cette construction on obtient l'instruction d’affectation:
variable = opérande;

Il est possible d’affecter une valeur à plusieurs variables:
v1 = v2 = 10;
Une perte d’information est possible si les types de la variable et de l’opérande ne sont pas les mêmes.
Exemples:
int a, b ;
a = b = -3.9 ; // а et b prennent -3, au lieu de -3.9
int x;
double y ;
x = y = -3.9; // y prend -3.9, x prend -3

Formes d’affectation différentes :

Les opérateurs += , -= , *= , /=, ++, -- ont le sens suivant:

a += b XXX // a = a + b
a -= b XXX // a = a – b
a *= b XXX // a = a * b
a /= b XXX // a = a / b
a %= b XX // a = a % b
a ++ XXXX // a = a+1
++a XXXX// a = a+1
-- a XXXXX// a = a-1
a-- XXXXX // a = a-1

Si à la fin de ces constructions on ajoute ; /le point virgule/ on obtient l’instruction d’affectation.

La place des opérateurs ++ et -- / avant ou après la variable/ est très importante. Si les opérateurs sont placés avant la variable, premièrement la variable change sa valeur et après l’opérande est évalué. Si les opérateurs sont placés après la variable premièrement l’opérande est évalué et la valeur de la variаble change ensuite.

int x=5;
double y = 2.4 ;
char c = ‘A’;
cout << ++x << endl; // affiche 6
cout << y++ << endl; // affiche 2.4
cout << "y = "<< y; // affiche 3.4
cout << ++c; // affiche B

Conversion du type de l'opérande:

Il est souvent nécessaire de convertir une valeur d'un type à un autre pour le besoin d'un calcul, ou de faire participer à une même opération des objets de types différents (par exemple
double et int).
Certaines conversions sont implicites, mais d'une façon générale il est préférable de les rendre explicites en préfixant l'objet à convertir par le type que l'on veut lui attribuer, entre parenthèses :

(type) opérande

Attention : la conversion de type peut occasionner une perte d'information, comme dans le cas d'une conversion double - int. Dans ce cas en effet, c'est la partie entière de la valeur qui est conservée.

Exemple:
double v = 3.6;
cout<<(int)v; // affiche 3
cout<< v; // affiche 3.6

Notez que cet opérateur ne change pas le type de la variable v. Elle reste de type
double et sa valeur est 3.6.

Exemple:
char ch='*';
cout<<(int)ch; // affiche 42, le code ASCII de ‘*’
cout<<(char)65; // change 65 en char, affiche A

Opérateur conditionnel

Cet opérateur a trois opérandes. La syntaxe:

opérande1 ? opérande2 : opérande3

Si l'opérande1 n'est pas 0 , le résultat est la valeur de l'opérande2, sinon le résultat est la valeur de l'opérande3.
Exemple:
int x = -1;
x ? cout << x + 1:cout << x - 1; // affiche 0

Opérateur , /virgule/

La syntaxe:

opérande1 , opérande2

On calcule l'opérande1 puis l'opérande2 . Le résultat est la valeur de l'opérande2.