/* 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 |