Le langage C++ cours et exercices 16.00 / 20

Ce livre est un cours de C et de C++. Il s’adresse aux personnes qui ont déjà quelques notions de
programmation dans un langage quelconque. Les connaissances requises ne sont pas très élevées
cependant : il n’est pas nécessaire d’avoir fait de grands programmes pour lire ce document. Il suffit
d’avoir vu ce qu’est un programme et compris les grands principes de la programmation.
Ce livre est structuré en deux grandes parties, traitant chacune un des aspects du C++. La première
partie, contenant les chapitres 1 à 12, traite du langage C++ lui-même, de sa syntaxe et de ses principales
fonctionnalités. La deuxième partie quant à elle se concentre sur la bibliothèque standard C++,
qui fournit un ensemble de fonctionnalités cohérentes et réutilisables par tous les programmeurs. La
bibliothèque standard C++ a également l’avantage d’utiliser les constructions les plus avancées du
langage, et illustre donc parfaitement les notions qui auront été abordées dans la première partie. La
description de la bibliothèque standard s’étend du chapitre 13 au chapitre 18.
Si la bibliothèque standard C++ est décrite en détail, il n’en va pas de même pour les fonctions de
la bibliothèque C. Vous ne trouverez donc pas dans ce livre la description des fonctions classiques
du C, ni celle des fonctions les plus courantes de la norme POSIX. En effet, bien que présentes
sur quasiment tous les systèmes d’exploitation, ces fonctions sont spécifiques à la norme POSIX et
n’appartiennent pas au langage en soi. Seules les fonctions incontournables de la bibliothèque C seront
donc présentées ici. Si vous désirez plus de renseignements, reportez-vous aux spécifications des
appels systèmes POSIX de l’OpenGroup (http://www.unix-systems.org/single_unix_specification/),
ou à la documentation des environnements de développement et à l’aide des kits de développement
des systèmes d’exploitation (SDK).
Ce livre a pour but de présenter le langage C++ tel qu’il est décrit par la norme ISO 14882
du langage C++. Cependant, bien que cette norme ait été publiée en 1999, le texte officiel
n’est pas librement disponible. Comme je ne veux pas cautionner le fait qu’un texte de norme
international ne soit pas accessible à tous, je me suis rabattu sur le document du projet de
normalisation du langage, datant du 2 décembre 1996 et intitulé « Working Paper for Draft
Proposed International Standard for Information Systems -- Programming Language C++
(http://casteyde.christian.free.fr/cpp/cours/drafts/index.html) ».
Notez que les compilateurs qui respectent cette norme se comptent encore sur les doigts d’une main,
et que les informations et exemples donnés ici peuvent ne pas s’avérer exacts avec certains produits.
En particulier, certains exemples ne compileront pas avec les compilateurs les plus mauvais. Notez
également que certaines constructions du langage n’ont pas la même signification avec tous les compilateurs,
parce qu’elles ont été implémentées avant que la norme ne les spécifie complètement. Ces
différences peuvent conduire à du code non portable, et ont été signalées à chaque fois dans une note.
Le fait que les exemples de ce livre ne fonctionnent pas avec de tels compilateurs ne peut donc pas
être considéré comme une erreur, mais plutôt comme une non-conformité des outils utilisés, qui sera
sans doute levée dans les versions ultérieures de ces produits.
Après avoir tenté de faire une présentation rigoureuse du sujet, j’ai décidé d’arranger le plan de ce
livre dans un ordre plus pédagogique. Il est à mon avis impossible de parler d’un sujet un tant soit
peu vaste dans un ordre purement mathématique, c’est-à-dire un ordre où les notions sont introduites
une à une, à partir des notions déjà connues (chaque fonction, opérateur, etc. n’apparaît pas avant sa
définition). Un tel plan nécessiterait de couper le texte en morceaux qui ne sont plus thématiques.
J’ai donc pris la décision de présenter les choses par ordre logique, et non par ordre de nécessité
syntaxique.
Les conséquences de ce choix sont les suivantes :
• il faut admettre certaines choses, quitte à les comprendre plus tard ;
i
Avant-propos
• il faut lire deux fois ce livre. Lors de la première lecture, on voit l’essentiel, et lors de la deuxième
lecture, on comprend les détails (de toutes manières, je félicite celui qui comprend toutes les subtilités
du C++ du premier coup).
Enfin, ce livre est un document vivant. Il est librement téléchargeable sur mon site web
(http://casteyde.christian.free.fr), où la dernière version peut être récupérée. Toute remarque est donc
la bienvenue. Je tâcherai de corriger les erreurs que l’on me signalera dans la mesure du possible, et
d’apporter les modifications nécessaires si un point est obscur. Si vous prenez le temps de m’envoyer
les remarques et les erreurs que vous avez pu détecter, je vous saurais gré de vérifier au préalable
qu’elles sont toujours d’actualité dans la dernière version de ce document. À cette fin, un historique
des révisions a été inclus en première page pour permettre l’identification des différentes éditions de
ce document.
ii

5285 téléchargements

Noter ce document

16 / 20

Contenu de ce document de Informatique > Programmation

Plan :

Avant-propos ....................................................................................................................................... i
I. Le langage C++................................................................................................................................ i
1. Première approche du C/C++.................................................................................................. 1
1.1. Les commentaires en C++.......................................................................................... 2
1.2. Les types prédéfinis du C/C++ ................................................................................... 2
1.3. Notation des valeurs ................................................................................................... 5
1.4. La définition des variables.......................................................................................... 7
1.5. Instructions et opérations............................................................................................ 9
1.6. Les fonctions ............................................................................................................ 12
1.6.1. Définition des fonctions ............................................................................... 12
1.6.2. Appel des fonctions...................................................................................... 13
1.6.3. Déclaration des fonctions............................................................................. 13
1.6.4. Surcharge des fonctions ............................................................................... 14
1.6.5. Fonctions inline............................................................................................ 15
1.6.6. Fonctions statiques....................................................................................... 16
1.6.7. Fonctions prenant un nombre variable de paramètres ................................. 16
1.7. La fonction main....................................................................................................... 18
1.8. Les fonctions d’entrée / sortie de base ..................................................................... 19
1.8.1. Généralités sur les flux d’entrée / sortie en C .............................................. 19
1.8.2. La fonction printf ......................................................................................... 21
1.8.3. La fonction scanf.......................................................................................... 23
1.9. Exemple de programme complet.............................................................................. 24
2. Les structures de contrôle ..................................................................................................... 25
2.1. La structure conditionnelle if.................................................................................... 25
2.2. La boucle for............................................................................................................. 26
2.3. Le while .................................................................................................................... 27
2.4. Le do......................................................................................................................... 27
2.5. Le branchement conditionnel ................................................................................... 28
2.6. Le saut ...................................................................................................................... 29
2.7. Les commandes de rupture de séquence .................................................................. 29
3. Types avancés et classes de stockage .................................................................................... 31
3.1. Structures de données et types complexes................................................................ 31
3.1.1. Les structures ............................................................................................... 31
3.1.2. Les unions .................................................................................................... 33
3.1.3. Les énumérations ......................................................................................... 34
3.1.4. Les champs de bits ....................................................................................... 35
3.1.5. Initialisation des structures et des tableaux.................................................. 36
3.1.6. Les alias de types ......................................................................................... 37
3.1.7. Transtypages ................................................................................................ 38
3.2. Les classes de stockage ............................................................................................ 38
4. Les pointeurs et références.................................................................................................... 43
4.1. Notion d’adresse....................................................................................................... 43
4.2. Notion de pointeur.................................................................................................... 43
4.3. Déréférencement, indirection ................................................................................... 44
4.4. Notion de référence .................................................................................................. 46
4.5. Lien entre les pointeurs et les références.................................................................. 46
4.6. Passage de paramètres par variable ou par valeur .................................................... 47
4.6.1. Passage par valeur........................................................................................ 47
4.6.2. Passage par variable ..................................................................................... 48

5285 téléchargements

120 commentaires


fiideal18
fiideal18
Posté le 26 déc. 2019

cool ce cour

dikwefrancois5
dikwefrancois5
Posté le 3 déc. 2019

salut moi c'est francois

 

youssef1400
youssef1400
Posté le 2 nov. 2019


Anonyme
Anonyme
Posté le 29 déc. 2018

merci 

Anonyme
Anonyme
Posté le 4 oct. 2018

 

Anonyme
Anonyme
Posté le 4 oct. 2018

merci 

 

Anonyme
Anonyme
Posté le 22 juil. 2018

Merci 

Anonyme
Anonyme
Posté le 15 janv. 2018

Très complet et explicite, ce document permettra a celui qui a de bonne base d'allais loin s'il le souhaite sans mauvaise intention. Merci pour ce document 

Anonyme
Anonyme
Posté le 23 nov. 2017

MERCI!

Anonyme
Anonyme
Posté le 23 nov. 2017

 

Anonyme
Anonyme
Posté le 16 août 2017

merci je commence dés maintenant ;) 

Anonyme
Anonyme
Posté le 6 août 2017

Merci beaucoup du document

Anonyme
Anonyme
Posté le 16 juil. 2017

Valide. très cool

Anonyme
Anonyme
Posté le 30 juin 2017

MERCI

 

Anonyme
Anonyme
Posté le 28 juin 2017

Thank you for your generosity

Anonyme
Anonyme
Posté le 27 févr. 2017

Merci pour ce document 

Anonyme
Anonyme
Posté le 23 févr. 2017

merci pour ce document 

Anonyme
Anonyme
Posté le 9 janv. 2017

Merci !!! :)

Anonyme
Anonyme
Posté le 8 janv. 2017

merci

Anonyme
Anonyme
Posté le 10 déc. 2016

Merci

Anonyme
Anonyme
Posté le 12 sept. 2016

Merci

 

Anonyme
Anonyme
Posté le 9 sept. 2016

merci

 

Anonyme
Anonyme
Posté le 19 août 2016

merciiii

Anonyme
Anonyme
Posté le 3 août 2016

merci

 

Anonyme
Anonyme
Posté le 14 avr. 2016

trop bien, j'adorre

Anonyme
Anonyme
Posté le 23 mars 2016

merci

Anonyme
Anonyme
Posté le 21 mars 2016

Cool

Anonyme
Anonyme
Posté le 9 mars 2016

cool

Anonyme
Anonyme
Posté le 7 mars 2016

merci !

Anonyme
Anonyme
Posté le 20 févr. 2016

très cool

Anonyme
Anonyme
Posté le 30 janv. 2016

bien

Anonyme
Anonyme
Posté le 18 janv. 2016

Très bien

Anonyme
Anonyme
Posté le 7 déc. 2015

j ai besoin des exercices

Anonyme
Anonyme
Posté le 7 déc. 2015

j ai besoin des exercices en informatique

Anonyme
Anonyme
Posté le 26 nov. 2015

MERCI

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

merci

Anonyme
Anonyme
Posté le 14 nov. 2015

Merci

Anonyme
Anonyme
Posté le 14 nov. 2015

tres bon document, merci

Anonyme
Anonyme
Posté le 5 nov. 2015

Je n'arrive pas à telecharger, on me demande des jetons quésaco ??????????

Anonyme
Anonyme
Posté le 1 nov. 2015

grâce à ce contenu on peut améliorer notre niveau , Merci bcp

Anonyme
Anonyme
Posté le 1 nov. 2015

vraiment c'est un cours complet  , Merci bcp

Anonyme
Anonyme
Posté le 30 oct. 2015

un trés bon cour 

Anonyme
Anonyme
Posté le 30 oct. 2015

merci

Anonyme
Anonyme
Posté le 27 oct. 2015

MERCI

Anonyme
Anonyme
Posté le 14 oct. 2015

faci

Anonyme
Anonyme
Posté le 14 oct. 2015

cool

Anonyme
Anonyme
Posté le 22 sept. 2015

Il faudrait qu'il y ait un cours qui reprenne tout depuis le début !

Anonyme
Anonyme
Posté le 22 sept. 2015

très intéressent !

Anonyme
Anonyme
Posté le 19 sept. 2015

trés bien fait

Anonyme
Anonyme
Posté le 9 sept. 2015

TROP COOL

Anonyme
Anonyme
Posté le 9 sept. 2015

COOL

Anonyme
Anonyme
Posté le 17 août 2015

J'ai bien hâte de pouvoir le consulter !

Anonyme
Anonyme
Posté le 29 juin 2015

franchement c'est un bon cour et c'est assez intéressant. 

Anonyme
Anonyme
Posté le 16 juin 2015

extraordinaire

Anonyme
Anonyme
Posté le 15 juin 2015

bien

Anonyme
Anonyme
Posté le 10 juin 2015

Super

Anonyme
Anonyme
Posté le 10 juin 2015

Super

 

Anonyme
Anonyme
Posté le 21 mai 2015

c important 

Anonyme
Anonyme
Posté le 21 mai 2015

merci bcp

Anonyme
Anonyme
Posté le 26 avr. 2015

merci

Anonyme
Anonyme
Posté le 16 avr. 2015

merci

Anonyme
Anonyme
Posté le 16 avr. 2015

vraiment cool

Anonyme
Anonyme
Posté le 24 mars 2015

Merci beaucoup:)

Anonyme
Anonyme
Posté le 21 mars 2015

Merci

Anonyme
Anonyme
Posté le 13 mars 2015

Merci à toi !

 

Anonyme
Anonyme
Posté le 13 mars 2015

Extra !!!

Anonyme
Anonyme
Posté le 1 mars 2015

tres bon cours

Anonyme
Anonyme
Posté le 1 mars 2015

mercii bcpppp 

Anonyme
Anonyme
Posté le 24 févr. 2015

supeer doc

Anonyme
Anonyme
Posté le 20 févr. 2015

Merci bcp 

Anonyme
Anonyme
Posté le 30 déc. 2014

j'ai pas eu le temps de tout lire mais c'est genial

Anonyme
Anonyme
Posté le 7 déc. 2014

document très important . Merci

Anonyme
Anonyme
Posté le 4 déc. 2014

Vous êtes les meilleurs.

Anonyme
Anonyme
Posté le 4 déc. 2014

Merci encore une fois.

Anonyme
Anonyme
Posté le 16 nov. 2014

document très conçu. Merci 

Anonyme
Anonyme
Posté le 11 juin 2014

Merci pour ce document. Je vais certainement en bénéficier.

Anonyme
Anonyme
Posté le 24 avr. 2013

C'est vraiment très intéressent. ça m'aidera dans mes projets de fin d'étude. les livres comme celui-ci nous en avons tous besoin spécialement pour ceux ou celles qui ont fait l'informatique leur métier voir même leur vie quotidien qui ne rêvent que programme, que faire quelque chose qui peut intéresser la majorité au monde assis ou assises devant leur ordinateur qui est leur ami avec qui ils/elles passent beaucoup du temps de la journée avec voir même la 24h/24h

Anonyme
Anonyme
Posté le 16 févr. 2013

c'est vraiment un bon document ;j'ai vraiment apprris beaucoup de choses en le lisant , en generale c'est largement acceptable , alors tout mes souhaits d'amelioration et de prosperite surtout avec la nouvelle année
2013 ou je vous souhaite tous sante et bonheur

Anonyme
Anonyme
Posté le 20 janv. 2013

good
se document a mon avis peut aider n'importe qui a comprendre les base de html mais pour quelqu'un qui pratique se domaine il va trouver que se document manque certaine balise en terme de langage html, mais de toute façon il est important pour les nouveau entrant en terme d’éducation de cette langage pour création de page web

Anonyme
Anonyme
Posté le 16 janv. 2013

ce document est intéressant pour de nombreuses personnes surtout les acros de la programmation orientée objet, de plus le langage de programmation c++ est parmis les meilleurs, je vous conseille donc d'étudier le c++ si vous aimeriez aller plus loin dans le domaine de programmation

Anonyme
Anonyme
Posté le 26 déc. 2012

good
se document a mon avis peut aider n'importe qui a comprendre les base de html mais pour quelqu'un qui pratique se domaine il va trouver que se document manque certaine balise en terme de langage html, mais de toute façon il est important pour les nouveau entrant en terme d’éducation de cette langage pour création de page web

Anonyme
Anonyme
Posté le 30 oct. 2012

Découvrez la troisième édition d’un ouvrage de référence pour apprendre le C++ de façon pratique et efficace. Contrairement à l’édition précédente , cette nouvelle édition propose en introduction une série d’exercices sur la syntaxe de base du C++ (types et opérateurs, instructions de contrôle, fonctions , tableaux, pointeurs …). Tous les chapitres débutent par un rappel de cours suivi de plusieurs exercices de difficulté croissante, et les corrigés des exercices sont présentés de façon détaillée.

Anonyme
Anonyme
Posté le 27 févr. 2011

good :)

Anonyme
Anonyme
Posté le 17 févr. 2011

thnkx

Anonyme
Anonyme
Posté le 21 sept. 2010

merci bcp c'est tres interessant

Anonyme
Anonyme
Posté le 28 août 2010

cours bien intéressant

Anonyme
Anonyme
Posté le 19 juin 2010

un document très intéressant, bien structuré.

Anonyme
Anonyme
Posté le 7 juin 2010

je ne l'ai pas encore lu mais j'ai confiance en vous!!!

Anonyme
Anonyme
Posté le 1 juin 2010

bien

Anonyme
Anonyme
Posté le 1 juin 2010

bien

Anonyme
Anonyme
Posté le 30 mars 2010

yper doc

Anonyme
Anonyme
Posté le 12 févr. 2010

je ne l'ai pas encore lu mais j'ai confiance en vous!!!

Anonyme
Anonyme
Posté le 31 janv. 2010

trop super merci

Anonyme
Anonyme
Posté le 31 janv. 2010

trop super merci

Anonyme
Anonyme
Posté le 28 janv. 2010

Wonderful !

Anonyme
Anonyme
Posté le 25 janv. 2010

c'est tres interessant ,merci

Anonyme
Anonyme
Posté le 19 janv. 2010

salut et un gros merci à toi de me rendre se service

Anonyme
Anonyme
Posté le 14 janv. 2010

Merci yall, merci alalach; merci zizoun; merci mtz

Anonyme
Anonyme
Posté le 14 janv. 2010

Merci yall

Anonyme
Anonyme
Posté le 14 janv. 2010

c tres interessant

Anonyme
Anonyme
Posté le 14 janv. 2010

c tres interessant

Anonyme
Anonyme
Posté le 27 nov. 2009

c'est super

Anonyme
Anonyme
Posté le 19 nov. 2009

salut, le lien de telechargement n'est pas bon.
SVP dites-moi ce qu'il faut faire.

Anonyme
Anonyme
Posté le 15 nov. 2009

c'est génial

Anonyme
Anonyme
Posté le 13 nov. 2009

c'est spésial

Anonyme
Anonyme
Posté le 6 nov. 2009

détaillé et simple

Anonyme
Anonyme
Posté le 30 sept. 2009

IL EST PARFAIT

Il faut être inscrit pour télécharger un document

Crée un compte gratuit pour télécharger ce document

Je m'inscrisOU

J'ai déjà un compte

Je me connecte