• Aucun résultat trouvé

Langage C en 184 pages

N/A
N/A
Protected

Academic year: 2022

Partager "Langage C en 184 pages"

Copied!
6
0
0

Texte intégral

(1)

Departement Mathematiques et Informatique

LE LANGAGE C

A. DANCEL

Envoyez SVP vos commentaires et corrections a :

dancel@eis.enac.dgac.fr

(2)
(3)

1 Generalites 9

1.1 Historique

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

9 1.2 Caracteristiques

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

9 1.3 Forme generale d'un programme C

: : : : : : : : : : : : : : : : : : : : : : : : : : :

10 1.3.1 Structure d'un programme C

: : : : : : : : : : : : : : : : : : : : : : : : : :

10 1.3.2 Structure d'une fonction

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

10 1.3.3 Structure d'un bloc

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

11 1.3.4 Structure d'une instruction elementaire

: : : : : : : : : : : : : : : : : : : :

11 1.4 Regles d'ecriture des programmes C

: : : : : : : : : : : : : : : : : : : : : : : : : :

11

2 Constantes, variables et typ es de base 15

2.1 Identicateurs

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

15 2.2 Types de base

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

16 2.2.1 Caractere

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

16 2.2.2 Entier

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

16 2.2.3 Les reels

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

17 2.2.4 Les dierents types sous HP C.

: : : : : : : : : : : : : : : : : : : : : : : : :

17 2.3 Les constantes

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

17 2.3.1 Constantes entieres

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

17 2.3.2 Constantes reelles

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

18 2.3.3 Constantes caracteres

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

18 2.3.4 Constantes cha^nes de caracteres

: : : : : : : : : : : : : : : : : : : : : : : :

19 2.4 Denition d'une variable simple

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

20 2.5 Denition d'une variable tableau

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

20 2.6 Classes de stockage et modicateurs

: : : : : : : : : : : : : : : : : : : : : : : : : :

21 2.6.1 Classe de stockage d'une variable

: : : : : : : : : : : : : : : : : : : : : : : :

21 2.6.2 Modicateurs de type

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

23 2.7 Initialisation des variables

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

24 2.7.1 Initialisation explicite

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

24 2.7.2 Initialisation implicite

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

24

3 Les expressions C 25

3.1 Generalites

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

25

3.2 Les operateurs arithmetiques

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

25

3.3 Operateurs de manipulation de bits

: : : : : : : : : : : : : : : : : : : : : : : : : : :

26

3.4 Les operateurs d'aectation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

28

3.4.1 Valeur a gauche (lvalue)

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

28

3.4.2 L'operateur d'aectation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

28

3.4.3 Aectation combinee

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

28

(4)

3.5 Incrementation/decrementation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

29 3.5.1 Pre-incrementation/pre-decrementation

: : : : : : : : : : : : : : : : : : : :

29 3.5.2 Post-incrementation/post-decrementation

: : : : : : : : : : : : : : : : : : :

29 3.6 L'operateur de taille

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

29 3.7 L'operateur de sequence

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

30 3.8 Conversions

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

30 3.8.1 Conversions implicites

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

30 3.8.2 Conversions explicites (casting)

: : : : : : : : : : : : : : : : : : : : : : : : :

32 3.9 Operateurs relationnels

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

32 3.10 Les expressions booleennes

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

33 3.10.1 Generalites

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

33 3.10.2 Operateurs booleens

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

33 3.11 L'operateur conditionnel

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

34 3.12 Analyse lexicale

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

34 3.13 Priorite et associativite des operateurs

: : : : : : : : : : : : : : : : : : : : : : : : :

34

4 Les structures de contr^ole 37

4.1 L'instruction

if: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

37 4.2 L'instruction

while: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

38 4.3 L'instruction

do

...

while : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

39 4.4 L'instruction

for : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

40 4.5 L'instruction

switch : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

41 4.6 L'instruction

break: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

42 4.7 L'instruction

continue: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

42

5 Les p ointeurs 45

5.1 Denition d'une variable pointeur

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

45 5.2 Operateur d'adresse

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

46 5.3 Operateur d'indirection

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

46 5.4 La constante

NULL : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

46 5.5 Arithmetique des pointeurs

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

47 5.5.1 Incrementation/decrementation de pointeur

: : : : : : : : : : : : : : : : : :

47 5.5.2 Addition/soustraction de 2 pointeurs

: : : : : : : : : : : : : : : : : : : : : :

47 5.5.3 Comparaison de pointeurs

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

47 5.5.4 Aectation de pointeurs

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

47 5.6

const

et les pointeurs

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

48 5.7 Pointeurs et tableaux

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

48 5.8 Les tableaux et les cha^nes

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

49 5.9 L'operateur d'adresse : explication complementaire

: : : : : : : : : : : : : : : : : :

50 5.10 Tableau de pointeurs

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

52 5.11 Ce programme ache

CCCCCCCC: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

53

6 Achages et saisies 55

6.1 La fonction

printf : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

55

6.2 La macro

putchar : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

58

6.3 La fonction

puts : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

59

6.4 La fonction

scanf : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

59

6.5 La macro

getchar : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

61

6.6 La fonction

gets : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

62

6.7 Les fonctions

sscanf

et

sprintf : : : : : : : : : : : : : : : : : : : : : : : : : : : :

63

(5)

7 Les fonctions 65

7.1 Generalites

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

65 7.2 Passage des parametres

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

65 7.3 L'appel d'une fonction

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

66 7.4 Denition classique d'une fonction

: : : : : : : : : : : : : : : : : : : : : : : : : : :

66 7.5 Declaration classique d'une fonction

: : : : : : : : : : : : : : : : : : : : : : : : : :

67 7.6 Denition ANSI d'une fonction

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

67 7.7 Declaration ANSI d'une fonction

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

68 7.8 Les prototypes

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

69 7.9 Passage par reference

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

69 7.10 L'instruction return

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

71 7.11 Pointeurs sur des fonctions

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

71 7.12 Arguments de main()

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

73 7.13 Fonctions retournant un pointeur

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

74 7.14 Les listes variables d'arguments

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

78 7.14.1 L'ellipse ...

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

78 7.14.2 Acces aux parametres

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

78 7.15 La recurrence

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

81

8 Les types derives 83

8.1 Les structures ( struct )

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

83 8.1.1 Declaration de type structure

: : : : : : : : : : : : : : : : : : : : : : : : : :

83 8.1.2 Utilisation des champs d'une structure

: : : : : : : : : : : : : : : : : : : : :

84 8.1.3 Structures recursives (ou autoreferentielles)

: : : : : : : : : : : : : : : : : :

86 8.1.4 const et les structures

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

88 8.2 Structure de bits

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

88 8.3 L'union ( union )

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

89 8.4 Enumeration ( enum )

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

91 8.5 Denition de nouveaux types ( typedef )

: : : : : : : : : : : : : : : : : : : : : : : :

91

9 Le preprocesseur 93

9.1 La directive #include

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

93 9.2 La directive #define

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

94 9.2.1 Substitution de texte

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

94 9.2.2 Denition de macros (ou pseudo-fonctions)

: : : : : : : : : : : : : : : : : :

95 9.2.3 Suppression d'une denition

: : : : : : : : : : : : : : : : : : : : : : : : : : :

96 9.3 La compilation conditionnelle

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

97 9.3.1 Les noms predenis

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

98

10 Compilation d'un programme C 99

10.1 Module

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

99 10.2 Compilation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

99 10.3 Autres outils

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

100 10.4 Librairies

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

100 10.5 Librairies partagees

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

101

11 La librairie C 103

11.1 La gestion des chiers

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

104

11.1.1 Generalites

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

104

11.1.2 Ouverture d'un chier ( fopen )

: : : : : : : : : : : : : : : : : : : : : : : : :

106

(6)

Cliquez ici pour telecharger le PDF complet

Références

Documents relatifs

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le

Cliquez ici pour telecharger le