Vous êtes sur la page 1sur 7

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 Opérateur Opérateur Opérateur Opérateur Opérateur
+ - * / %
Calcul addition soustraction Multiplication division Reste de division entière

Opérateurs bit à bit & | ~ ^


and or not xor

Assignation = += -= *= /= |= &= ^=
j+=2 j=j+2 j+=2 j=j+2

Incrémentation ++ --

Comparaison == != > <


>= <=

Logique || && !
or and not

Opérateurs de >> <<


décalage de bits j=j>>2 i=2<<2
Opérateurs de & * [] . 
manipulation de &p *p Tab[i] structure. champ p champ _de_la_structure
bits
Accès à la mémoire () (type) sizeof
i=(*p)+5 (int)x_réel sizeof(float)
Evaluation ,
séquentielle x,y évalue x puis y
Evaluation ?:
conditionnelle 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 Langage C : Résumé

Caractère Type Affiché comme:


d’argument
d, i int nombre décimal
o int nombre octal non signé (sans précéder par zéro)
x, X int nombre hexadécimal non signé (sans 0x or 0X)
u int Nombre décimal non signé
c int un caractère
s char * Affiche les caractères de la chaîne jusqu’à '\0' ou bien en spécifiant le nombre
f double [-]m.dddddd, où le nombre de d est précisé (par défaut 6).
e, E double 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).
g, G double utilise %e or %E si l’exposant est inférieur à -4 or supérieur ou égal à la précision; autrement, utilise %f.
p void * pointeur
% no argument affiche %

scanf(format, liste d'adresses)


Formats de scanf :

Caractère Input Data Argument type


d Entier décimal int *

i Entier int *. Il peut être octal ou hexadécimal.

o Entier octal (précédé ou non par zéro) int *

u Entier décimal non signé unsigned int *


x hexadecimal integer (with or without leading 0x or 0X) int *
c caractère 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é.
s Chaîne de caractères (sans quottes) char *, pointant un tableau de caractères se terminant par '\0'.

e, f, g Nombre flottant avec en option le signe, le point décimal et l’exposant float *


% littéral % Sans assignation

Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB Prof. Slimane LARABI Page 7