IN3R11-2 – C - Cours 3

IN3R11-2 – C - Cours 3

-

Documents
22 pages
Lire
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

IN3R11-2 { CCours 3Damien MASSONd.masson@esiee.frhttp://esiee.fr/ massond/Teaching/IN3R11-2/~23 novembre 2010Le retour des pointeurspointeur = adresse memoire + typetype* nom; nom pointe sur une zone memoire correspondantau type donnele type peut ^etre quelconquevaleur speciale NULL equivalente a 0pointeur generique : void* nom;l’operateur & donne l’adresse d’une variable&*t == t puisque de la variable pointee par t... est t#include int main( int argc , char argv [])fint i ;int t = &i ;printf ("%d\n",&t==t) ;/ 1 /g2/22Passage par adressevoid swap(int a, int b) void swap(int a, int b)f fint tmp = a; int tmp = a;a = b; a = b;b = tmp; b = tmp;g gint main( int argc , char argv) int main( int argc , char argv)f fint a = 5,b = 10; int a = 5,b = 10;swapt(a,b) ; swapt(&a,&b) ;printf ("a = %d, b = %d" ,a,b) ; printf ("a = %d, b = %d" ,a,b) ;/ a = 5, b = 10 / / a = 10, b = 5 /g g3/22Arithmetique des pointeursint* t on peut voir t comme un tableau d’int : *t = t[0]l’addition et la soustraction se font en fonction de la taille deselements du tableaudouble t [10];printf ("%d\n" ,t+2==(void)t+2sizeof (double)) ; / 1 /printf ("%d\n" ,(t+8)==t [8]) ; / 1 /l’operateur ++ fonctionne sur les pointeurs :int tab[]=f1 ,2g;int t = tab ;printf ("%d\n" ,t [0]) ; / 1 /t++;printf ("%d\n" ,t [0]) ; / 2 /4/22Structures et pointeursune structure (resp une union ou une enum) peut avoir ...

Sujets

Informations

Publié par
Nombre de visites sur la page 26
Langue Français
Signaler un problème
IN3R11-2 – C
Cours 3
Damien MASSON d.masson@esiee.fr
http://esiee.fr/~massond/Teaching/IN3R11-2/
23 novembre 2010