Etudiant

1317 mots 6 pages
Algorithme et Structures de Données
Wurtz Jean-Marie Université Louis Pasteur Wurtz@igbmc.u-strasbg.fr

Les pointeurs en C
•Opérateurs * et &, priorité •Déclaration : type et fonction (define, struct, union)

Mémoire d’un ordinateur
Adresse

27
•Tableaux et pointeurs, initialisation •Passage par adresse : scanf •Retour des fonctions : struct, union, fonction •Allocation dynamique i=27 pi = adresse(i); /* adresse de la cellule mémoire qui contient la valeur 27 */

Les pointeurs en C : les opérateurs * et &
• • • • int i, j, *ip; i=11; ip= &i; j=21; i 11

Les pointeurs en C : déclaration de types ip Priorité : * < [] < () • • • • • • • int i int *pi int **ppi int it[] int *pit[] int *if() int (*ipf)() → Un entier → Pointeur vers un entier → Pointeur de pointeur d’entier → Tableau d’entier → Tableau de pointeurs d’entier → Fonction retournant un pointeur d’entier → Pointeur de fonction retournant un entier

j
21

Ad(i)

i

j
21

ip
Ad(i)

• *ip=j;

21

Les pointeurs en C : passage par adresse (1)
• passage par valeur , int f1(int a, int b) : la fonction f1 crée une copie des variables « a » et «b» • passage par adresse, int f2(int *a, int *b) : la fonction f2 peut modifier le contenu des variables « a » et « b »de la fonction appelante

Les pointeurs en C : passage par adresse (2) void echange(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } a =11; b = 27; echange(a,b); } a =11; b = 27; echange(&a,&b); void echange(int *a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp;

a et b inchangées

a et b échangées

Les pointeurs en C : passage par adresse (3)
•int f3(int a[], int b), « a » passage par adresse : les modifications du tableau « a » seront répercutées au niveau de la fonction appelante. •Une variable définit comme un tableau est transmise comme un pointeur : a[n] == *(a+n) enum/sizeof Les pointeurs en C : les tableaux i i+1

• • • •

int ti[]; double td[]; char tc[]; struct nœud tn []; struct nœud { int

en relation

  • Muscu
    7169 mots | 29 pages
  • corrigé livre de maths terminale sti2d/ stl édition Nathan technique chapitre fonctions logarithmes
    9066 mots | 37 pages
  • Etudiant
    380 mots | 2 pages
  • 172675 C6 Livre Du Prof
    9817 mots | 40 pages
  • Interrogation sur les dérivées
    666 mots | 3 pages
  • Etudiant
    828 mots | 4 pages
  • Etudiant
    2704 mots | 11 pages
  • Dissert'
    797 mots | 4 pages
  • Etudiant
    7134 mots | 29 pages
  • Aide
    918 mots | 4 pages
  • Etudiant
    3495 mots | 14 pages
  • Etudiant
    615 mots | 3 pages
  • Etudiant
    3515 mots | 15 pages
  • fiche inéquation
    692 mots | 3 pages
  • Etudiant
    15484 mots | 62 pages