Date : 09/02/2010Heure : 05:36:30Votre Ip : 38.107.191.103

Zoom texte :

Connectés actuellement : 5Membres : 8Total logiciels  : 157

Vous êtes ici :

Introduction au langage C

Table des matières

  1. 1 Les bases
  2. 1.1 Les versions du langage C
  3. 1.2 Langage et bibliothèque standard
  4. 1.3 Les phases de compilation
  5. 1.4 Les jeux de caractères
  6. 1.5 Les unités lexicales
  7. 1.5.1 Les mots-clés
  8. 1.5.2 Les identificateurs
  9. 1.6 Les commentaires
  10. 1.7 Les types de base
  11. 1.7.1 Les caractères
  12. 1.7.2 Les entiers
  13. 1.7.3 Les flottants
  14. 1.8 Les constantes
  15. 1.8.1 Les constantes entières
  16. 1.8.2 Les constantes caractères
  17. 1.8.3 Les constantes flottantes
  18. 1.9 Les chaînes de caractères littérales
  19. 1.10 Les constantes nommées
  20. 1.10.1 Les #define
  21. 1.10.2 Les énumérations
  22. 1.11 Déclarations de variables ayant un type de base
  23. 1.12 Les opérateurs les plus usuels
  24. 1.12.1 L'affectation
  25. 1.12.2 L'addition
  26. 1.12.3 La soustraction
  27. 1.12.4 La multiplication
  28. 1.12.5 La division
  29. 1.12.6 L'opérateur modulo
  30. 1.12.7 Les opérateurs de comparaison
  31. 1.13 Les instructions les plus usuelles
  32. 1.13.1 Instruction expression
  33. 1.13.2 Instruction composée
  34. 1.13.3 Instruction if
  35. 1.14 Inclusion de source
  36. 1.15 Les procédures et les fonctions
  37. 1.15.1 Définition d'une fonction
  38. 1.15.2 Appel d'une fonction
  39. 1.15.3 Les procédures
  40. 1.15.4 Fonctions imbriquées
  41. 1.15.5 Récursivité
  42. 1.15.6 Référence à une fonction externe
  43. 1.15.7 Comprendre la documentation de la bibliothèque standard
  44. 1.15.8 Les fonctions dans le style K&R
  45. 1.16 Impression formattée
  46. 1.17 Structure d'un programme
  47. 1.18 Terminaison d'un programme
  48. 1.19 Mise en oeuvre du compilateur C sous UNIX
  49. 1.20 Exercice
  50. 1.21 Récréation
  51. 2 Les tableaux
  52. 2.1 Les tableaux
  53. 2.1.1 Déclaration de tableaux dont les éléments ont un type de base
  54. 2.1.2 Initialisation d'un tableau
  55. 2.1.3 Référence à un élément d'un tableau
  56. 2.1.4 Chaînes et tableaux de caractères
  57. 2.2 Les instructions itératives
  58. 2.2.1 Instruction for
  59. 2.2.2 Instruction while
  60. 2.2.3 Instruction do
  61. 2.2.4 Instruction break
  62. 2.2.5 Instruction continue
  63. 2.3 Les opérateurs
  64. 2.3.1 Opérateur pré et post incrément
  65. 2.3.2 Opérateur pré et post décrément
  66. 2.3.3 Quelques utilisations typiques de ces opérateurs
  67. 2.3.4 Opérateur et logique
  68. 2.3.5 Opérateur ou logique
  69. 2.3.6 Opérateur non logique
  70. 2.4 Exercice
  71. 3 Les pointeurs
  72. 3.1 Notion de pointeur
  73. 3.2 Déclarations de variables de type pointeur vers les types de base
  74. 3.3 Type de pointeur générique
  75. 3.4 Opérateur adresse de
  76. 3.5 Opérateur d'indirection
  77. 3.6 Exercice
  78. 3.7 Pointeurs et opérateurs additifs
  79. 3.7.1 Opérateurs + et -
  80. 3.7.2 Opérateurs ++ et --
  81. 3.8 Différence de deux pointeurs
  82. 3.9 Exercice
  83. 3.10 Passage de paramètres
  84. 3.10.1 Les besoins du programmeur
  85. 3.10.2 Comment les langages de programmation satisfont ces besoins
  86. 3.10.3 La stratégie du langage C
  87. 3.11 Discussion
  88. 3.12 Une dernière précision
  89. 3.13 Exercice
  90. 3.14 Lecture formattée
  91. 3.15 Les dernières instructions
  92. 3.15.1 Instruction switch
  93. 3.15.2 Instruction goto
  94. 3.15.3 Instruction nulle
  95. 3.16 Exercice
  96. 3.17 Récréation
  97. 4 Relations entre tableaux et pointeurs
  98. 4.1 Conversion des tableaux
  99. 4.2 L'opérateur d'indexation
  100. 4.3 Passage de tableau en paramètre
  101. 4.4 Modification des éléments d'un tableau passé en paramètre
  102. 4.5 Interdiction de modification des éléments d'un tableau passé en paramètre
  103. 4.6 Conversion des chaînes littérales
  104. 4.7 Retour sur printf
  105. 4.8 Exercice
  106. 4.9 Tableaux multidimensionnels
  107. 4.9.1 Déclarations
  108. 4.9.2 Accès aux éléments
  109. 4.9.3 Passage en paramètre
  110. 4.10 Initialisation
  111. 4.11 Exercice
  112. 4.12 Tableau de pointeurs
  113. 4.12.1 Cas général
  114. 4.12.2 Tableaux de pointeurs vers des chaînes
  115. 4.12.3 Paramètres d'un programme
  116. 4.13 Tableau et pointeur, c'est la même chose ?
  117. 4.13.1 Commentaires
  118. 4.13.2 Cas particulier des chaînes littérales
  119. 4.14 Récréation
  120. 5 Les entrées-sorties
  121. 5.1 Pointeur invalide
  122. 5.2 Ouverture et fermeture de fichiers
  123. 5.2.1 Ouverture d'un fichier : fopen
  124. 5.2.2 fermeture d'un fichier : fclose
  125. 5.3 Lecture et écriture par caractère sur fichier
  126. 5.3.1 lecture par caractère : fgetc
  127. 5.3.2 lecture par caractère : getc
  128. 5.3.3 lecture par caractère : getchar
  129. 5.3.4 écriture par caractère : fputc
  130. 5.3.5 écriture par caractère : putc
  131. 5.3.6 écriture par caractère : putchar
  132. 5.4 Lecture et écriture par lignes sur fichier
  133. 5.4.1 lecture par ligne : fgets
  134. 5.4.2 lecture par ligne : gets
  135. 5.4.3 écriture par chaîne : fputs
  136. 5.4.4 écriture par chaîne : puts
  137. 5.5 E/S formattées sur fichiers
  138. 5.5.1 écriture formattée : fprintf
  139. 5.5.2 écriture formattée : printf
  140. 5.5.3 écriture formattée dans une chaîne : sprintf
  141. 5.5.4 Exemples d'utilisation des formats
  142. 5.5.5 Entrées formattées : fscanf
  143. 5.5.6 Entrées formattées : scanf
  144. 5.5.7 Entrées formattées depuis une chaîne : sscanf
  145. 5.6 Récréation
  146. 5.7 Exercice 1
  147. 5.8 Exercice 2
  148. 6 Structures, unions et énumérations 103
  149. 6.1 Notion de structure
  150. 6.2 Déclaration de structure
  151. 6.3 Opérateurs sur les structures
  152. 6.3.1 Accés aux membres des structures
  153. 6.3.2 Affectation de structures
  154. 6.3.3 Comparaison de structures
  155. 6.4 Tableaux de structures
  156. 6.5 Exercice
  157. 6.6 Pointeurs vers une structure
  158. 6.7 Structures dont un des membres pointe vers une structure du même type
  159. 6.8 Accès aux éléments d'une structure pointée
  160. 6.9 Passage de structures en paramètre
  161. 6.10 Détermination de la taille allouée à un type
  162. 6.10.1 Retour sur la conversion des tableaux
  163. 6.11 Allocation et libération d'espace pour les structures
  164. 6.11.1 Allocation d'espace : fonctions malloc et calloc
  165. 6.11.2 Libération d'espace : procédure free
  166. 6.12 Exercice
  167. 6.13 Les champs de bits
  168. 6.13.1 Généralités
  169. 6.13.2 Contraintes
  170. 6.14 Les énumérations
  171. 6.15 Les unions
  172. 6.16 Accès aux membres de l'union
  173. 6.17 Utilisation pratique des unions
  174. 6.18 Une méthode pour alléger l'accès aux membres
  175. 7 Les expressions
  176. 7.1 Les conversions de types
  177. 7.1.1 Utilité des conversions
  178. 7.1.2 Ce qu'il y a dans une conversion
  179. 7.1.3 L'ensemble des conversions possibles
  180. 7.1.4 Les situations de conversions
  181. 7.1.5 La promotion des entiers
  182. 7.1.6 Les conversions arithmétiques habituelles
  183. 7.1.7 Les surprises des conversions
  184. 7.2 Les opérateurs
  185. 7.2.1 Opérateur non bit à bit
  186. 7.2.2 Opérateur et bit à bit
  187. 7.2.3 Opérateur ou bit à bit
  188. 7.2.4 Opérateur ou exclusif bit à bit
  189. 7.2.5 Opérateur décalage à gauche
  190. 7.2.6 Opérateur décalage à droite
  191. 7.2.7 Opérateur conditionnel
  192. 7.2.8 Opérateur virgule
  193. 7.2.9 Opérateurs d'affectation composée
  194. 7.3 Opérateur conversion
  195. 7.4 Sémantique des expressions
  196. 7.4.1 Opérateurs d'adressage
  197. 7.4.2 Priorité et associativité des opérateurs
  198. 7.4.3 Ordre d'évaluation des opérandes
  199. 7.5 Récréation
  200. 8 Le préprocesseur
  201. 8.1 Traitement de macros
  202. 8.1.1 Les macros sans paramètres
  203. 8.1.2 Macros prédéfinies
  204. 8.1.3 Les macros avec paramètres
  205. 8.1.4 Les pièges des macros
  206. 8.1.5 Macros générant des instructions
  207. 8.2 Compilation conditionnelle
  208. 8.2.1 Commande #if
  209. 8.2.2 Commandes #ifdef et #ifndef
  210. 8.2.3 L'opérateur defined
  211. 8.2.4 La commande #error
  212. 8.2.5 Usage
  213. 8.3 Récréation
  214. 9 Les déclarations
  215. 9.1 Déclarations de définition et de reférence
  216. 9.1.1 Déclarations de variables
  217. 9.1.2 Déclarations de fonctions
  218. 9.1.3 Déclarations d'étiquettes de structures et union
  219. 9.2 Portée des déclarations
  220. 9.3 Visibilité des identificateurs
  221. 9.4 Les espaces de noms
  222. 9.4.1 Position du problème
  223. 9.4.2 Les espaces de noms du langage C
  224. 9.5 Durée de vie
  225. 9.6 Classes de mémoire
  226. 9.6.1 Position du problème
  227. 9.6.2 Les spécificateurs de classe de mémoire
  228. 9.7 La compilation séparée
  229. 9.7.1 Généralités
  230. 9.7.2 La méthode du langage C
  231. 9.8 Définition de types
  232. 9.9 Utilité des typedef
  233. 9.9.1 Restriction d'un type de base
  234. 9.9.2 Définition de type structure
  235. 9.9.3 Définition de types opaques
  236. 9.10 Qualificatifs de type
  237. 9.11 Fonction à nombre variable de paramètres
  238. 9.11.1 Exemple 1
  239. 9.11.2 Exemple 2
  240. 9.12 Syntaxe des déclarations
  241. 9.13 Sémantique des déclarations
  242. 9.14 Discussion sur les déclarations
  243. 9.15 En pratique
  244. 9.16 Un outil : cdecl
  245. 10 La bibliothèque standard
  246. 10.1 Diagnostic
  247. 10.2 Manipulation de caractères <ctype.h>
  248. 10.3 Environnement local <locale.h>
  249. 10.4 Mathématiques <math.h>
  250. 10.4.1 Fonctions trigonométriques et hyperboliques
  251. 10.4.2 Fonctions exponentielles et logarithmiques
  252. 10.4.3 Fonctions diverses
  253. 10.5 Branchements non locaux <setjmp.h>
  254. 10.6 Manipulation des signaux <signal.h>
  255. 10.7 Nombre variable de paramètres <stdarg.h>
  256. 10.8 Entrées sorties <stdio.h>
  257. 10.8.1 Opérations sur les fichiers
  258. 10.8.2 Accès aux fichiers
  259. 10.8.3 Entrées-sorties formattées
  260. 10.8.4 Entrées-sorties caractères
  261. 10.8.5 Entrées-sorties binaires
  262. 10.8.6 Position dans un fichier
  263. 10.8.7 Gestion des erreurs
  264. 10.9 Utilitaires divers <stdlib.h>
  265. 10.9.1 Conversion de nombres
  266. 10.9.2 Génération de nombres pseudo-aléatoires
  267. 10.9.3 gestion de la mémoire
  268. 10.9.4 Communication avec l'environnement
  269. 10.9.5 Recherche et tri
  270. 10.9.6 Arithmétique sur les entiers
  271. 10.9.7 Gestion des caractères multi-octets
  272. 10.10 Manipulation de chaînes <string.h>
  273. 10.11 Manipulation de la date et de l'heure <time.h>
  274. A Les jeux de caractères
  275. A.1 Les normes
  276. A.2 Le code ascii
  277. A.2.1 Les codes ascii en octal
  278. A.2.2 Les codes ascii en hexadécimal
  279. A.2.3 Les codes ascii en décimal
  280. A.3 Les codes ISO-Latin-1
  281. B Bibliographie
  282. C Ressources Internet
  283. D La grammaire
  284. D.1 Les unités lexicales
  285. D.2 Les mots-clés
  286. D.3 Les identificateurs
  287. D.4 Les constantes
  288. D.5 Les chaînes littérales
  289. D.6 Les opérateurs
  290. D.7 La ponctuation
  291. D.8 Nom de fichier d'inclusion
  292. D.9 Les nombres du préprocesseur
  293. D.10 Les expressions
  294. D.11 Les déclarations
  295. D.12 Les instructions
  296. D.13 Définitions externes
  297. D.14 Directives du préprocesseur
  298. D.15 Références croisées de la grammaire
  299. E Un bestiaire de types
  300. E.1 Les types de base
  301. E.2 Les tableaux
  302. E.3 Les pointeurs
  303. E.4 Les fonctions
  304. E.5 Les énumérations
  305. E.6 Les structures, unions et champs de bits
  306. E.7 Les qualificatifs
  307. F Le bêtisier
  308. F.1 Erreur avec les opérateurs
  309. F.1.1 Erreur sur une comparaison
  310. F.1.2 Erreur sur l'affectation
  311. F.2 Erreurs avec les macros
  312. F.2.1 Un #define n'est pas une déclaration
  313. F.2.2 Un #define n'est pas une initialisation
  314. F.2.3 Erreur sur macro avec paramètres
  315. F.2.4 Erreur avec les effets de bord
  316. F.3 Erreurs avec l'instruction if
  317. F.4 Erreurs avec les commentaires
  318. F.5 Erreurs avec les priorités des opérateurs
  319. F.6 Erreur avec l'instruction switch
  320. F.6.1 Oubli du break
  321. F.6.2 Erreur sur le default
  322. F.7 Erreur sur les tableaux multidimensionnels
  323. F.8 Erreur avec la compilation séparée