/* commentaire */En C il y a trois types de données de base : les entiers, les réels et les caractères. Il n'y a pas de booléens ou de chaînes de caractères comme dans les langages de programmation de haut niveau.
float : codé sur 4 octetsdouble : codé sur 8 octetsstruct employe { char nom [20]; int ident; long salaire; } temporaire;
union triplet { float premier; short deuxieme; char troisieme; }; union triplet u;
enum semaine {lundi, mardi, mercredi, jeudi, vendredi} jour; enum niveau { bas = 500; moyen = 1000; haut = 5000; }; enum niveau niv;
typedef int ENTIER; typedef unsigned char UNCHAR; typedef enum {faux,vrai} BOOLEAN;
Cela ne cause pas de problème pour les opérandes qui sont de même type. Lorsqu’ils sont différents, une convertion automatique vers le plus précis se fait.
char → int → long → float → double
| Niv | Opérateurs | Sens |
|---|---|---|
| 1 | () [] | Gauche à droite |
| 2 | ! ~ ++ – | Droite à gauche |
| 3 | * / % | Gauche à droite |
| 4 | + - | Gauche à droite |
| 5 | « » | Gauche à droite |
| 6 | < ⇐ > ⇒ | Gauche à droite |
| 7 | == != | Gauche à droite |
| 8 | & (et bit) | Gauche à droite |
| 9 | ^ ou exclu | Gauche à droite |
| 10 | | ou bit | Gauche à droite |
| 11 | && et logique | Gauche à droite |
| 12 | || ou logique | Gauche à droite |
| 13 | = += -= | Droite à gauche |
Conversion explicite avec l’opérateur unaire cast. Par exemple, pour convertir le réel de type double en valeur entière de type int :
(int) 1.234
ou bien :
prinf("%d",(int)1.234);
Plus prioritaire que la multiplication.
#include <stdio.h> #include <conio.h> int main() { int i; printf("Enterez la valeur : "); scanf("%d", &i); switch (i) { case 0 : printf("Vous avez selectionne 0\n"); break; case 1 : printf("Vous avez selectionne 1\n"); break; case 2 : printf("Vous avez selectionne 2\n"); break; case 3 : case 4 : printf("Vous avez selectionne 3 ou 4\n"); break; case 5 : break; default : printf("Votre selection est invalide ! \n"); break; } printf("FIN"); getch();getch(); return 0; }
| Format | Type de donnée |
|---|---|
| %d | Entier décimal de type int |
| %hd | Entier décimal de type short |
| %ld | Entier décimal de type long |
| %i | Entier décimal de type int |
| %u | Entier décimal de type int non signé |
| %hu | Entier décimal de type short non signé |
| %lu | Entier décimal de type long non signé |
| %o | Entier octal de type int |
| %ho | Entier octal de type short |
| %lo | Entier octal de type long |
| %x | Entier hexadécimal de type int |
| %hx | Entier hexadécimal de type short |
| %lx | Entier hexadécimal de type long |