Département Informatique, USTHB Langage C : Résumé 1. Structure d’un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d’entrée pour l’exécution. Un exemple simple : #include <stdio.h> int main() { printf (“this is an example \n”); return 0; } 2. Commentaire: /* …………………..texte……………………*/ On utilise aussi le commentaire du C++ qui est valable pour C: // ………………………… 3. Mots clés : auto – double – int – break – else – long – switch – case – enum – register – typedef – char – extern – return – union – const – float – short – unsigned – continue – goto – sizeof – volatile – do – if – static – while Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 1 Département Informatique, USTHB Langage C : Résumé 4. Opérateurs Type d’opérateur Calcul Opérateur + addition Opérateurs bit à bit Assignation & and = Opérateur soustraction | Opérateur * Multiplication += -= j+=2 j=j+2 ++ -- Comparaison == != Logique || or && and ! not << i=2<<2 * *p [] Tab[i] (type) (int)x_réel sizeof sizeof(float) Evaluation séquentielle Evaluation conditionnelle >> j=j>>2 & &p () i=(*p)+5 % Reste de division entière ^ xor not *= /= j+=2 j=j+2 Opérateur / division ~ or Incrémentation Opérateurs de décalage de bits Opérateurs de manipulation de bits Accès à la mémoire Opérateur |= &= > >= ^= < <= . structure. champ p champ _de_la_structure , x,y évalue x puis y ?: x=(x>4)?j:j+1 Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 2 Département Informatique, USTHB Langage C : Résumé 5. Ordre de priorités des opérateurs Par ordre décroissant : ()[] + - ++ -- ! ~ * & (type) sizeof * / % + << >> < <= > >= == != & ^ | && || ? : = += -= *= /= %= &= ^= |= <<= >>= , Encas de priorités identiques, l’associativité es appliqué en allant de gauche à droite pour tous les opérateurs à l’exception de : ? : = += -= *= /= %= &= ^= |= <<= >>= ? : = += -= *= /= %= &= ^= |= <<= >>= Exemple : (a=b=c=d) (a=(b=(c=d)) Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 3 Département Informatique, USTHB Langage C : Résumé 6. Les types de base int (short int, int, long int, unsigned) Les tailles dépendent des machines: Exemple: short int 2 octets, int, long int 4 octets float char Les constantes entières: -décimale: +23, -54 -octale: 012 00001010 10 -hexadécimal: 0x2A 00101010 42 Constante non signée (0..255) si elle est préfixée ou suffixée par U ou u: 014u 001100 12 Constante de type long int : 12l ou 12L Les constantes réelles: –float –double –long double Les caractères: char my_character=’a’; char str[11]= "chaîne de " ; Les constantes énumérées: enum couleur = {vert=4, bleu, rouge}; les valeurs se comportent comme des entiers (4, 5, 6). Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 4 Département Informatique, USTHB Langage C : Résumé 7. Instructions If (expression) {bloc} else {bloc}; Le else est regroupé avec ile if le plus interne, sinon on doit utiliser les crochets : If(m==0) if (n !=4) nb++; else nb=0; switch (expression) { case const1: instructions; break; case const2: instructions; break; .. default: instructions; } while (expression) {instructions;} for (expre1 ; expr2 ; expr3) { instructions;} do {instructions;} while (expression); break; quitter une boucle (for, do, while) continue: passer à l’itération suivante, mais ne quitte pas la boucle. goto etiq; aller à l’instruction étiquetée par etiq. Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 5 Département Informatique, USTHB Langage C : Résumé 8. Liste chaînée typedef struct MaListe { int Contenu; struct MaListe *pSuivant; } Maliste; Maliste *Tete; Tete = NULL; 9. Pointeur sur tableau Tableau à une dimension tab[n]: int *ptab; ptab=(int*) malloc (n*sizeof(int)); 10. Instructions d’entrée /sortie putchar (c) getchar() printf("message %format % format ", arg1, arg2); Formats de printf: Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 6 Département Informatique, USTHB Caractère d, i o x, X u c s f e, E g, G p % Type d’argument int int int int int char * double double double void * no argument Langage C : Résumé Affiché comme: nombre décimal nombre octal non signé (sans précéder par zéro) nombre hexadécimal non signé (sans 0x or 0X) Nombre décimal non signé un caractère Affiche les caractères de la chaîne jusqu’à '\0' ou bien en spécifiant le nombre [-]m.dddddd, où le nombre de d est précisé (par défaut 6). Affiche sous le format [-]m.dddddde+/-xx or [-]m.ddddddE+/-xx, où le nombre de d est spécifié dans le format (par défaut 6). utilise %e or %E si l’exposant est inférieur à -4 or supérieur ou égal à la précision; autrement, utilise %f. pointeur affiche % scanf(format, liste d'adresses) Formats de scanf : Caractère Input Data Entier décimal Argument type d i Entier int *. Il peut être octal ou hexadécimal. o Entier octal (précédé ou non par zéro) int * u x c Entier décimal non signé hexadecimal integer (with or without leading 0x or 0X) caractère unsigned int * int * s Chaîne de caractères (sans quottes) e, f, g % Nombre flottant avec en option le signe, le point décimal et l’exposant littéral % int * char *. Le prochain caractère en entrée is placé dans le buffer désigné. Pour lire le prochain caractère différent de l’espace, %1s est utilisé. char *, pointant un tableau de caractères se terminant par '\0'. float * Sans assignation Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 7