L’essentiel du langage C Structure d'un programme élémentaire Types scalaires de base Définition - Initialisation Opérateurs Définition de blocs Schéma de choix Schéma itératif Définition de types Tableaux Structures Fonctions Sorties Chaîne de développement
Un premier programme /* afficher bonjour */ #include <stdio.h> main () { printf ("Bonjour\n"); }
Types scalaires de base Type Entier short, int, long, long long : plate-forme dépendants ( sizeof() ) souvent short : 16 bits, int : 32 bits, long : 32 ou 64 bits préfixé unsigned : valeurs positives ou nulles Type Réel float (32 bits), double (64 bits) ( normalisés ) Type Caractère char (8 bits) Pas de type Booléen Utilisation de valeur entière ou de constantes énumérées égale à 0 <=> FAUX , différente de zéro <=> VRAI Pas de type Chaîne Utilisation de tableaux de caractères
Définition & Initialisation de variables Définition ( en début de bloc ) int x; float y, z; Initialisation facultative au moment de la définition int x = 0; float y=1.0, z=1.5;
Opérateurs Affectation = (opérateur binaire!) Opérateurs arithmétiques + , - , * , / , %, +=, -=, …. i++ , --j Opérateurs de comparaison == , != , < , <= , >= , > Opérateurs logiques ! , && , ,
Définition de bloc { int i =2; /* un premier bloc */ int j; j = i +3; { int j; /* un deuxième bloc */ j = 3; /* variable locale au bloc */ } j++; /* j contient la valeur 6 */
if if (a==0) { if (b!=0) { racine = -c/b; } else { /* ... */ } } else { /* a != 0 */ delta = b*b - (4*a*c);
while & for #define N 10 int i; i = 1; while (i <= N) { printf ("%d, ", i); i++; } for (i = 1; i <=N; i++) { printf ("%d, ", i); }
Définition de types Définition de types scalaires typedef int Naturel; typedef enum {FAUX,VRAI} Booleen; Définition de types tableau #define N 10 #define M 20 typedef int Tableau1D[N]; typedef int Tableau2D[N][M]; Définition de types structure typedef struct pointf { float x; float y; } Pointf;
Tableau à une dimension Définition int t[10]; Tableau1D t1; Initialisation int t2 [3] = {-1, 0, 1}; int t3 [] = {-1, 0, 1}; char texte1 [] = "bonjour"; /* tableau de 8 caractères ; ajout d'un '\0' */ char texte2 [] = {'b', 'o', 'n', 'j','o', 'u', 'r', '\0'}; Accès aux éléments Les indices débutent en 0 t[i] : i+1ème élément
Tableau multidimensionnel Déclaration - Initialisation Accès aux éléments int matrice [2][3] = { {1, 2, 3}, {4, 5, 6} }; Tableau2D matrice1; matrice [i][j]
Structure Définition Accès aux membres struct point { int x; int y; } ; struct point p1,p2; typedef struct point Point; Point p3; Pointf p4; p1.x
Fonctions int minimum ( int x, int y ) { if ( x<y ) return x; else return y; } void afficherNombresParfaits ( int n ) { int i; for ( i=1 ; i<=n ; i++ ) if ( estParfait( i ) == VRAI ) printf ("%d ", i );
Sorties #include <stdio.h> int x,y; …... printf ("x = %d\ty = %d\n", x, y); int printf (char format[], ...) %d : int - \n : retour à la ligne %ld : long - \t : tabulation %f : float %lf : double %s : char[ ]
Chaîne de développement Saisie Compilation exécution Programme source Fichier exécutable xemacs monProg.c & gcc monProg.c -o monProg monProg