• Aucun résultat trouvé

2011–2012 camille.coti@iutv.univ-paris13.fr CamilleCoti Coursn ° 4IntroductionaulangageC I3–AlgorithmiqueetprogrammationIntroductionàlaprogrammationenlangageC

N/A
N/A
Protected

Academic year: 2022

Partager "2011–2012 camille.coti@iutv.univ-paris13.fr CamilleCoti Coursn ° 4IntroductionaulangageC I3–AlgorithmiqueetprogrammationIntroductionàlaprogrammationenlangageC"

Copied!
38
0
0

Texte intégral

(1)

Syntaxe du langage C Les pointeurs Programmation structurée

I3 – Algorithmique et programmation Introduction à la programmation en langage C

Cours n°4 Introduction au langage C

Camille Coti

camille.coti@iutv.univ-paris13.fr

IUT de Villetaneuse, département R&T

2011 – 2012

(2)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

1 Syntaxe du langage C Blocs d’instructions Affichage et saisie formatée Structures de contrôle

2 Les pointeurs

3 Programmation structurée Fonctions

Procédures

Passage de paramètres

(3)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Bloc d’instructions

Les blocs sont délimités par des accolades : { et } 1 #i n c l u d e <s t d i o . h>

2 #i n c l u d e < s t d l i b . h>

34 i n t main ( ) {

5 p r i n t f ( " H e l l o world \n" ) ;

6 r e t u r n EXIT_SUCCESS ;

7 }

Une variable déclarée dans un bloca une portée limitée à ce bloc Les fonctions et les structures de contrôle utilisent desblocs pour structurer le code

Ici : le bloc de la fonctionmaincommence ligne 4 et termine ligne 7 La fonctionmainexécute les instructions contenues dans ce bloc

(4)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Affichage formaté à l’écran

Utilisation de la fonctionprintf

Définie dansstdio.h: il faut indiquer#include <stdio.h>pour inclure sa définition

Syntaxe :

On donne le format de la chaîne de caractères à afficher Si on affiche des variables : on les met ensuite

Exemple :

1 i n t i ;

2 i = 0 ;

3 p r i n t f ( " i vaut %d\n" , i ) ;

On indique letypede la variable à mettre dans la chaîne de caractères avec un

%

type int : %d ; long int : %ld type caractère : %c

type flottant : %f (simple précision), %lf (double précision) Caractères spéciaux : \n = retour chariot, \t : tabulation...

(5)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Saisie formatée au clavier

Utilisation de la fonctionscanf Définie dansstdio.h

Syntaxe :

On donne le format des variables lues (identique à celui utilisé par printf) On donne l’emplacement de ces variables en mémoire avec leur nom précédé de & : adresse en mémoire de la variable

Exemple :

1 i n t i ;

2 p r i n t f ( " S a i s i r i : \n" ) ; 3 s c a n f ( "%d" , &i ) ;

(6)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Expressions booléennes

Comparaison de valeurs : Égalité : ==

Attention : DEUX signes égal

Exemple : a == b ; a == 2 (à éviter) ; 2 == a (recommandé) Non-égalité : !=

Exemple : a != b Ordre : <et>,>= et<=

Exemple : a>b ; a>= b

Opérateurs logiques : ET logique : &&

Exemple : (a != b) && (b == c) OU logique : ||

Exemple : (a != b) || (b == c)

(7)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Tests if

Syntaxe :

ifsuivi de la condition à évaluer entre parenthèses bloc d’instructions à exécuter si la condition est validée

1 i f( i == 0 ) {

2 p r i n t f ( " i e s t n u l \n" ) ;

3 }

Alternative (facultative) : else

bloc d’instructions à exécuter si la condition n’est pas validée

1 i f( 0 == i ) {

2 p r i n t f ( " i e s t n u l \n" ) ;

3 } e l s e {

4 p r i n t f ( " i vaut %d\n" , i ) ;

5 }

(8)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Tests if (suite)

Tests imbriqués : on peut mettre d’autres tests dans un bloc 1 i f( i > 0 ) {

2 p r i n t f ( " i e s t p o s i t i f \n" ) ;

3 } e l s e {

4 i f( 0 == i ) {

5 p r i n t f ( " i e s t n u l \n" ) ;

6 } e l s e {

7 p r i n t f ( " i e s t n é g a t i f \n" ) ;

8 }

9 }

Attention à l’indentation du code (décalage vers la droite) Le contenu d’un bloc est au même niveau d’indentation Chaque sous-bloc imbriqué est décalé d’un cran vers la droite Pas obligatoire d’un point de vue syntaxique mais aide grandement la lisibilité

(9)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Tests if (suite)

Utilisation d’opérateurs booléens pour combiner des expressions booléennes dans la condition :

1 i f( ( l e t t r e == ’ a ’ ) 2 | | ( l e t t r e == ’ e ’ ) 3 | | ( l e t t r e == ’ i ’ ) 4 | | ( l e t t r e == ’ o ’ ) 5 | | ( l e t t r e == ’ u ’ ) 6 | | ( l e t t r e == ’ y ’ ) ) {

7 p r i n t f ( "%c e s t une v o y e l l e \n" , l e t t r e ) ;

8 } e l s e {

9 p r i n t f ( "%c e s t une consonne \n" , l e t t r e ) ;

10 }

(10)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Tests switch

Test sur une variable

Plusieurs égalités testées successivement (lescase) Définition d’une série d’instructionspour chaque case Fin de la série d’instructions avecbreak

1 i n t v a l e u r ; 2 v a l e u r = 4 2 ; 3 s w i t c h( v a l e u r ){

4 c a s e 0 :

5 p r i n t f ( " c ’ e s t n u l \n" ) ;

6 b r e a k;

7 c a s e 1 :

8 p r i n t f ( " v a l e u r 1\n" ) ;

9 b r e a k;

10 c a s e −1:

11 p r i n t f ( " v a l e u r −1\n" ) ;

12 b r e a k;

13 d e f a u l t:

14 p r i n t f ( " a u t r e v a l e u r \n" ) ;

15 b r e a k;

16 }

(11)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Tests switch

Test sur une variable

Plusieurs égalités testées successivement (lescase) Définition d’une série d’instructionspour chaque case Fin de la série d’instructions avecbreak

1 i n t v a l e u r ; 2 v a l e u r = 4 2 ; 3 s w i t c h( v a l e u r ){

4 c a s e 0 :

5 p r i n t f ( " c ’ e s t n u l \n" ) ;

6 b r e a k;

7 c a s e 1 :

8 p r i n t f ( " v a l e u r 1\n" ) ;

9 b r e a k;

10 c a s e −1:

11 p r i n t f ( " v a l e u r −1\n" ) ;

12 b r e a k;

13 d e f a u l t:

14 p r i n t f ( " a u t r e v a l e u r \n" ) ;

15 b r e a k;

16 }

(12)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Boucle for

BouclePour. Syntaxe :

1 f o r( i n i t i a l i s a t i o n du compteur ; 2 c o n d i t i o n d ’ a r r ê t ;

3 m o d i f i c a t i o n du compteur ) { 4 b l o c d ’ i n s t r u c t i o n s

5 }

Le compteur doit être un entier ou un entier non signé.

Exemple :

1 i n t i ;

2 f o r( i = 0 ; i < 3 ; i++ ) {

3 p r i n t f ( " v a l e u r de i : %d\n" , i ) ;

4 }

(13)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Boucle for (suite)

On peut définir n’importe quelle opération de modification du compteur.

Exemple avec un pas négatif :

1 i n t i ;

2 f o r( i = 10 ; i > 0 ; i = i − 2 ) {

3 p r i n t f ( " v a l e u r de i : %d\n" , i ) ;

4 }

Affichage :

v a l e u r de i : 10 v a l e u r de i : 8 v a l e u r de i : 6 v a l e u r de i : 4 v a l e u r de i : 2

(14)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Boucle while

BoucleTant que. Syntaxe :

1 w h i l e( c o n d i t i o n ) { 2 a c t i o n s ;

3 }

Attention à la condition : si elle est toujours vérifiée, boucle infinie...

Si la condition n’est jamais vérifiée on n’entre jamais dans la boucle : on teste la conditionpuis on exécute le bloc si nécessaire

Exemple :

1 f l o a t i ;

2 i = 0 ;

3 w h i l e( i < 5 ) {

4 p r i n t f ( " V a l e u r : %f \n" , i ) ;

5 i ++;

6 }

(15)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Boucle do ... while

BoucleFaire... tant que. Syntaxe :

1 do {

2 a c t i o n s ;

3 } w h i l e( c o n d i t i o n ) ;

Attention à la condition : si elle est toujours vérifiée, boucle infinie...

Le bloc est exécutéau moins une fois: on teste la conditionaprès exécution du bloc

Exemple :

1 i = 0 ;

2 do {

3 p r i n t f ( " V a l e u r : %f \n" , i ) ;

4 i ++;

5 } w h i l e( i < 5 ) ;

(16)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Différence entre while et do ... while

Bouclewhile:

On évalue la conditionavantd’exécuter le bloc Si la condition est réalisée, on exécute le bloc

Si la condition n’est jamais réalisée, on n’exécute pas le bloc du tout

Boucledo ... while:

On évalue la conditionaprèsavoir exécuté le bloc Si la condition est réalisée, on ré-exécute le bloc

Si la condition n’est jamais réalisée, on exécute une fois le bloc et on s’arrête là

(17)

Syntaxe du langage C Les pointeurs Programmation structurée Blocs Affichage et saisie formatée Structures de contrôle

Différence entre while et do ... while (suite)

Exemple :

1 i n t i ;

2 i = 0 ;

3 w h i l e( i == 1 ) {

4 p r i n t f ( " b o u c l e w h i l e "\n ) ;

5 }

6 do {

7 p r i n t f ( " b o u c l e do . . . w h i l e "\n ) ;

8 } w h i l e( i == 1 ) ;

La première condition n’est jamais réalisée. Donc on n’exécute pas la ligne 4

On exécute la ligne 7 puis la condition ligne 8 n’est pas réalisée donc on s’arrête là

Affichage obtenu :

b o u c l e do . . . w h i l e

(18)

Syntaxe du langage C Les pointeurs Programmation structurée

1 Syntaxe du langage C Blocs d’instructions Affichage et saisie formatée Structures de contrôle

2 Les pointeurs

3 Programmation structurée Fonctions

Procédures

Passage de paramètres

(19)

Syntaxe du langage C Les pointeurs Programmation structurée

Les pointeurs

Définition

Un pointeur est uneadressevers une zone mémoire.

On déclare un pointeur avec le type de la zone pointée et une étoile : type ∗ nom ;

Exemple :

i n t∗ i ;

int* i;

X On désigne :

Le pointeur (l’adresse) : le nom de la variable Exemple : i

La valeur pointée : * + nom de la variable Exemple : *i

Attention: quand on a juste déclaré le pointeur, il ne pointe sur rien.

(20)

Syntaxe du langage C Les pointeurs Programmation structurée

Adresse d’une variable

On obtient l’adresse d’une variable en utilisant l’opérateur&

Exemple :

1 i n t∗ i ;

2 i n t k ;

3 i = &k ;

Ligne 3 : on affecte l’adressedekdans le pointeuri.

Cas descanf: on met la valeur lue à l’adresse de la variable 1 s c a n f ( "%d" , &i ) ;

Adresse particulière : NULL Adresse inutilisable

Utilisé pour gagner en sécurité (initialisations, effacement de valeurs...) Exemple : int* i = NULL;

Possibilité de tester

Exemple : if( NULL == i ) /* ... */

(21)

Syntaxe du langage C Les pointeurs Programmation structurée

Affectation d’une valeur dans un pointeur

Exemple : déclaration d’un pointeur i n t∗ i ;

i n t k = 3 ;

int* i;

int k; 3

Affectation de l’adresse dekdans le pointeuri

i = &k ;

int* i;

int k; 3

Affichage :

p r i n t f ( " i = %d\n" , ∗ i ) ; Résultat : i = 3

(22)

Syntaxe du langage C Les pointeurs Programmation structurée

Affectation d’une valeur dans un pointeur

Exemple : déclaration d’un pointeur i n t∗ i ;

i n t k = 3 ;

int* i;

int k; 3

Affectation de l’adresse dekdans le pointeuri i = &k ;

int* i;

int k; 3

Affichage :

p r i n t f ( " i = %d\n" , ∗ i ) ; Résultat : i = 3

(23)

Syntaxe du langage C Les pointeurs Programmation structurée

Affectation d’une valeur dans un pointeur

Exemple : déclaration d’un pointeur i n t∗ i ;

i n t k = 3 ;

int* i;

int k; 3

Affectation de l’adresse dekdans le pointeuri i = &k ;

int* i;

int k; 3

Affichage :

p r i n t f ( " i = %d\n" , ∗ i ) ; Résultat : i = 3

(24)

Syntaxe du langage C Les pointeurs Programmation structurée

Affectation d’une valeur dans un pointeur

Autre exemple : i n t∗ i ;

i n t∗ j ; i n t k ; k = 3 ; i = &k ; j = i ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ; Donne : i = 3 – j = 3

Modification de la valeur dek: k = 4 ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ;

Donne : i = 4 – j = 4 Modification de la

valeur pointée pari:

∗ i = 5 ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ;

Donne : i = 5 – j = 5

(25)

Syntaxe du langage C Les pointeurs Programmation structurée

Affectation d’une valeur dans un pointeur

Autre exemple : i n t∗ i ;

i n t∗ j ; i n t k ; k = 3 ; i = &k ; j = i ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ; Donne : i = 3 – j = 3

Modification de la valeur dek: k = 4 ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ; Donne : i = 4 – j = 4

Modification de la valeur pointée pari:

∗ i = 5 ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ;

Donne : i = 5 – j = 5

(26)

Syntaxe du langage C Les pointeurs Programmation structurée

Affectation d’une valeur dans un pointeur

Autre exemple : i n t∗ i ;

i n t∗ j ; i n t k ; k = 3 ; i = &k ; j = i ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ; Donne : i = 3 – j = 3

Modification de la valeur dek: k = 4 ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ; Donne : i = 4 – j = 4

Modification de la valeur pointée pari:

∗ i = 5 ;

Affichages :

p r i n t f ( " i = %d −− j = %d\n" , ∗ i , ∗ j ) ; Donne : i = 5 – j = 5

(27)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

1 Syntaxe du langage C Blocs d’instructions Affichage et saisie formatée Structures de contrôle

2 Les pointeurs

3 Programmation structurée Fonctions

Procédures

Passage de paramètres

(28)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Fonctions

Déclaration d’une fonction : Type retourné par la fonction Nom de la fonction

Arguments et leurs types

Valeur retournée renvoyée avec le mot-cléreturn+ la valeur retournée

Exemple :

1 i n t c a l c u l C a r r e H y p o t h e n u s e ( i n t cote1 , i n t cote2 ){

2 i n t r e s u l t a t ;

3 /∗ i m p l é m e n t a t i o n de l a f o n c t i o n ∗/

4 r e t u r n r e s u l t a t ;

5 }

(29)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Procédures

Déclaration d’une procédure : Pas de type retourné : void Nom de la procédure Arguments et leurs types

Exemple :

1 v o i d a f f i c h e r R e s u l t a t ( i n t v a l e u r ){

2 /∗ i m p l é m e n t a t i o n de l a p r o c é d u r e ∗/

3 }

On sort de la procédure à la fin du bloc d’instruction où quand on rencontre le mot-cléreturn

(30)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres

On passe les paramètres des fonctions et procédures en les appelant depuis la fonction principale

i n t c a r r e ( i n t x ) { r e t u r n ( x∗x ) ; }

i n t main ( ) { i n t i = 3 ; i n t c a r ;

c a r = c a r r e ( i ) ; p r i n t f ( "%d\n" , c a r ) ; r e t u r n EXIT_SUCCESS ; }

iest copié dans l’espace mémoire de la fonctioncarre()

main() carre()

int i;

int car;

3 copie 3 int x;

retour 9 9

Leur valeur est copiée dans l’espace mémoire de la fonction ou la procédure Utilisation locale dans la fonction ou la procédure

(31)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres

On passe les paramètres des fonctions et procédures en les appelant depuis la fonction principale

i n t c a r r e ( i n t x ) { r e t u r n ( x∗x ) ; }

i n t main ( ) { i n t i = 3 ; i n t c a r ;

c a r = c a r r e ( i ) ; p r i n t f ( "%d\n" , c a r ) ; r e t u r n EXIT_SUCCESS ; }

iest copié dans l’espace mémoire de la fonctioncarre()

main() carre()

int i;

int car;

3 copie 3 int x;

retour 9 9

Leur valeur est copiée dans l’espace mémoire de la fonction ou la procédure Utilisation locale dans la fonction ou la procédure

(32)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres

On passe les paramètres des fonctions et procédures en les appelant depuis la fonction principale

i n t c a r r e ( i n t x ) { r e t u r n ( x∗x ) ; }

i n t main ( ) { i n t i = 3 ; i n t c a r ;

c a r = c a r r e ( i ) ; p r i n t f ( "%d\n" , c a r ) ; r e t u r n EXIT_SUCCESS ; }

iest copié dans l’espace mémoire de la fonctioncarre()

main() carre()

int i;

int car;

3 copie 3 int x;

retour 9 9

Leur valeur est copiée dans l’espace mémoire de la fonction ou la procédure Utilisation locale dans la fonction ou la procédure

(33)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres

On passe les paramètres des fonctions et procédures en les appelant depuis la fonction principale

i n t c a r r e ( i n t x ) { r e t u r n ( x∗x ) ; }

i n t main ( ) { i n t i = 3 ; i n t c a r ;

c a r = c a r r e ( i ) ; p r i n t f ( "%d\n" , c a r ) ; r e t u r n EXIT_SUCCESS ; }

iest copié dans l’espace mémoire de la fonctioncarre()

main() carre()

int i;

int car;

3 copie 3 int x;

retour 9 9

Leur valeur est copiée dans l’espace mémoire de la fonction ou la procédure Utilisation locale dans la fonction ou la procédure

(34)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres par valeur vs par pointeur

Attention au passage de paramètres par valeur !

La valeur estcopiéedans l’espace mémoire de la fonction

Modifications locales dans la fonction : non répercutéessur l’appelant

Solution : passage de paramètres modifiablespar pointeur Le pointeur n’est pas modifié

La valeur pointée peut l’être

(35)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres par pointeur

v o i d i n c r ( i n t∗ x ) {

∗x = ∗x + 1 ; }

i n t main ( ) { i n t i = 3 ; i n c r ( &i ) ;

p r i n t f ( "%d\n" , i ) ; r e t u r n EXIT_SUCCESS ; }

*iest copié dans l’espace mémoire de la fonctionincr()

Il pointe toujours vers la valeur qui nous intéresse

On peut modifier la valeur pointée

main() carre()

int i; 3 copie int* x;

pointeur

4 *x + 1;

Utilisation

On doit passer les paramètres d’une fonction ou d’une procédurepar leur adresselorsque leur valeur est modifiée dans la fonction ou la procédure.

(36)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres par pointeur

v o i d i n c r ( i n t∗ x ) {

∗x = ∗x + 1 ; }

i n t main ( ) { i n t i = 3 ; i n c r ( &i ) ;

p r i n t f ( "%d\n" , i ) ; r e t u r n EXIT_SUCCESS ; }

*iest copié dans l’espace mémoire de la fonctionincr()

Il pointe toujours vers la valeur qui nous intéresse

On peut modifier la valeur pointée

main() carre()

int i; 3 copie int* x;

pointeur

4 *x + 1;

Utilisation

On doit passer les paramètres d’une fonction ou d’une procédurepar leur adresselorsque leur valeur est modifiée dans la fonction ou la procédure.

(37)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Passage de paramètres par pointeur

v o i d i n c r ( i n t∗ x ) {

∗x = ∗x + 1 ; }

i n t main ( ) { i n t i = 3 ; i n c r ( &i ) ;

p r i n t f ( "%d\n" , i ) ; r e t u r n EXIT_SUCCESS ; }

*iest copié dans l’espace mémoire de la fonctionincr()

Il pointe toujours vers la valeur qui nous intéresse

On peut modifier la valeur pointée

main() carre()

int i; int* x;

3

copie pointeur

4 *x + 1;

Utilisation

On doit passer les paramètres d’une fonction ou d’une procédurepar leur adresselorsque leur valeur est modifiée dans la fonction ou la procédure.

(38)

Syntaxe du langage C Les pointeurs Programmation structurée Fonctions Procédures Paramètres

Cas de la fonction main()

Paramètres demain()= arguments de la ligne de commande du programme Paramètres récupérés sous forme d’untableau de chaînes de caractères

Rappel = chaîne de caractères = tableau dechar

1 i n t main ( i n t argc , c h a r∗∗ argv ) {

2 p r i n t f ( "Nb d \ ’ arguments de %s : %d\n" , argv [ 0 ] , ar gc ) ;

3 r e t u r n EXIT_SUCCESS ;

4 }

Remarques :

argv[0]= nom du programme appelant

Les arguments sont des tableaux dechar= nécessité de faire des conversions

atoi(),atol()...

Le dernier élément (argv[argc - 1]) vautNULL

Références

Documents relatifs

– avant l’exécution : var1 désigne l’objet obj1 et var2 désigne l’objet obj2 – après l’exécution : var1 désigne l’objet obj2 et var2 désigne l’objet obj1 Vous

– avant l’exécution : var1 désigne l’objet obj1 et var2 désigne l’objet obj2 – après l’exécution : var1 désigne l’objet obj2 et var2 désigne l’objet obj1 Vous

Si le programme est constitué de plusieurs fichiers source et/ou si il utilise des fonctions et des variables externes (définies dans des bibliothèques extérieures), les bouts de

Copie taille caract` eres de orig dans dest Copie brute d’un tampon dans un autre :.. Allocation de tableaux D´ eclaration de nouveaux types Allocation statique Allocation

Le pointeur de l’´ el´ ement pr´ ec´ edent pointe vers le nouvel ´ el´ ement Le pointeur du nouvel ´ el´ ement pointe vers l’´ el´ ement suivant Suppression d’un ´ el´

Les biblioth` eques en C Cr´ eation d’une biblioth` eque Compilation avec Make Pr´ esentation Utilisation ´ Ecriture d’un Makefile. 1 Les biblioth` eques

Introduction ` a la manipulation de fichiers Les fichiers en C ´ Ecriture Lecture Exemple : copie d’un fichier dans un autre Synth` ´ Ecriture en mode caract` eres ´ Ecriture

Types de donn´ ees Structures de contrˆ ole Programmation structur´ ee Fonctions Proc´ edures Passage de param` etres Cas du main(). 1 Types de