Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMichel Paquin Modifié depuis plus de 9 années
1
Les expressions
2
Une expression retourne une valeur lorsqu’elle est exécutée par le programme. a+2, x==0, i++, !isdigit(c) && b, sin(Pi),… On peut donc utiliser le résultat d’une expression comme partie d’une autre expression…
3
Opérateurs arithmétiques Unaires: + - « Deuxaires »: –Entiers et réels: +, -, *, / –Entiers seuls:% reste de la division –Attention, des opérandes de types différents provoquent un cast implicite.(voir plus loin)
4
Opérateurs logiques Effectuent des opérations au niveau des bits. & : and ( 7 & 12 donne 4 car 0111 & 1100 donne 0100) | : or (7 | 12 donne 15 car 0111 | 1100 donne 1111) ^ : xor (3^5 donne 6 car 0011^0101 donne 0110 ) : décalage à gauche (3 2 donne 24 car 0011 2 donne 1100) : décalage à droite (5 2 donne car 0101 2 donne 0001 ) ~ : complément à 1 (~5 donne 10 car ~0101 donne 1010)
5
Opérateurs d’affectation C’est le signe égal = La RValue est calculée puis affectée à la LValue L’opération d’affectation rend une valeur. Son résultat est égal à la valeur final de la LValue. Donc: i=(j=(k=6)); Simplification d’écriture: +=, -=, *=, /=, …x+=3; équivaut à x=x+3; 6 6 6
6
Opérateur d’incrémentation Incrémentation préfixée/postfixée. a++ est équivalent à a=a+1; b=a++; est équivalent à b=a; puis a=a+1; b=++a; est équivalent à a=a+1; puis b=a; Attention aux expressions complexes: b=a++ + a*2; Le sens du calcul dépend de l’implémentation
7
Opérateur relationnels ==, !=, , , =, = Attention; ne pas confondre = et == (évaluation) &&, ||, ! expr1 && expr2 donne: si expr1 alors (si expr2 alors 1 sinon 0) sinon 0 expr1 || expr2 donne: si expr1 alors 1 sinon (si expr2 alors 1 sinon 0)
8
Autres opérateurs Conditionnel: a?b:c Vaut la valeur de b si a est vrai, c sinon. Séquentiel:, (ceci est une virgule) Permet de regrouper deux sous expressions en une seule. Exemple: for(i=j=0; i 10;i++,j++) D’adresse: utilisé avec les pointeurs, les structures et unions & *.
9
Ordre de priorité des opérateurs 1 fonction/sélection ( ) [ ]. GD 2unaire* & - ! ~++ -- sizeofDG 3multiplicatif* / %GD 4additif+ -GD 5décalage GD 6relationnel =GD 7inégalité/égalité== !=GD 8ET logique&GD 9XOR logique^GD 10OU logique|GD 11ET relationnel&&GD 12OU relationnel||GD 13conditionnel?GD 14affectation= DG 15virgule,GD
10
Evaluation d’une expression Même symboles n’auront pas même signification selon contexte. 3+4 3.+4. 3.+4 ‘3’+4 ‘a’ + 0x20 ‘s’ – ‘a’ Conversion implicite de type pour opérateur arithmétique: –char et short en int –un des opérande en double, tout en double –un des opérande en long, tout en long –Un des opérande en unsigned, tout en unsigned Utilisation du cast pour lever ambiguïtés
11
Conversion explicite de types (cast, transtypage) (type) expression; type étant élémentaire ou un pointeur sur un type élémentaire. int h; h = (int) (3.9 / 4.) Attention: int x,y; float z; x=3; y=2; z=x/y; z=(float) (x/y); z=(float)(x) /(float) (y);
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.