Top Banner
1 Les pointeurs et quelques rappels sur certains éléments du langage C
37

1 Les pointeurs et quelques rappels sur certains éléments du langage C.

Apr 04, 2015

Download

Documents

Ambroise Hoarau
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

1

Les pointeurs et quelques rappels sur certains éléments du

langage C

Page 2: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

2

Page 3: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

3

Page 4: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

4

Page 5: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

5

Page 6: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

6

Page 7: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

7

Page 8: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

8

#include <stdio.h>void main() { int i1=1,i2=2; int *p1,*p2;

p1=&i1;p2=p1;printf("%d,%d\n",*p1,*p2); /*affiche ?*/p2=&i2;printf("%d\n",*p2); /*affiche ?*/*p2=*p1;printf("%d\n",*p2); /*affiche ?*/

}

1,121

Page 9: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

9

#include<stdio.h>int main() { int i;

int *j;i = 1;j = &i;*j = 2;printf("i vaut : %d\n", i);return 0;

}

i vaut : 2

Page 10: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

10

#include <stdio.h>int main(){

int i=11;int *ptri;ptri = &i;printf("La valeur %d est pointee par %p\n“,i, ptri);return(0);

}

La valeur 11 est pointee par 2427:21FE

Page 11: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

11

#include <stdio.h>int main(){

int i;int *ptri;ptri = &i;printf("La valeur pointée par ptri est %d\n", *ptrI);return(0);

}

La valeur pointee par ptri est 19125

Page 12: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

12

#include <stdio.h>int main(){

int i;int *ptri;ptri = &i;i = 15;printf("La valeur pointée par ptri est %d\n", *ptri);return(0);

}

La valeur pointee par ptri est 15

Page 13: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

13

#include <stdio.h>void main() { int *ad1, *ad2, *ad;

int n = 10, p = 20;ad1 = &n;ad2 = &p;ad = NULL;printf("ad=%p\n",ad);*ad1 = *ad2 + 2; /*identique a n=p+2; */(*ad1)++; /* identique a n++;*/ad++;printf("ad=%p\n",ad);ad += 10;printf("ad=%p\n",ad);ad -= 25;printf("ad=%p\n",ad);n= ad1-ad2;printf("n=%d\n",n);

}

ad=0000:0000ad=0000:0002ad=0000:0016ad=0000:FFE4n=1

accès direct accès indirect

Page 14: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

14

Page 15: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

15

Page 16: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

16

Page 17: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

17

Page 18: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

18

Page 19: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

19

Page 20: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

20

Page 21: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

21

Page 22: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

22

Page 23: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

23

Page 24: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

24

Page 25: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

25

Exemple: Faire un programme C à calculer les trois résultats: 1) le nombre d’ éléments positives; 2) le nombre d’ éléments négatives; 3) la somme de tout les nombres dans un tableau donné.

Page 26: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

26

#include <stdio.h> 1/2void fon(int a[ ],int n,int *n_pos,int *n_neg,int *s);

void main() { int tab[ ]={22,-33,4,5,-6};

int n_pos,n_neg,somme; fon(tab,sizeof(tab)/sizeof(int),&n_pos,&n_neg,&somme); printf("Le nombre d'elements positives=%d\n",n_pos); printf("Le nombre d'elements negatives=%d\n",n_neg); printf("La somme d'elements=%d\n",somme);

}

Exemple:

Le nombre d'elements positives=3Le nombre d'elements negatives=2La somme d'elements=-8

Le prototype de la fonction

Page 27: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

27

void fon(int a[],int n,int *n_pos,int *n_neg,int *s) 2/2 { int i;

*n_pos=*n_neg=*s=0; for(i=0;i<n;i++)

{ if(a[i]>0) (*n_pos)++; else

if(a[i]<0) (*n_neg)++; (*s)+=a[i];}

}

La définition de la fonction

Page 28: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

28

Page 29: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

29chaîne est une valeur variable

Page 30: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

30

Page 31: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

31

Page 32: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

32

Page 33: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

33

Page 34: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

34

Exemple: Faire un programme C à trouver: 1) le nombre d’occurrence d’un caractère donné dans une chaîne de caractère donné; 2) la chaîne miroir de la chaîne donné.

#include <stdio.h> 1/3#include <string.h>

int count(char *s,char ch);void miroir(char *s,char *t);

Les prototypes des fonctions

Page 35: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

35

void main() 2/3 { char s[60],m[60],c; printf("Entrer une chaine:"); gets(s); printf("Entrer un caractere:"); fflush(stdin); c=getchar(); printf("Le nombre de caractere %c dans %s est=%d\n",c,s,count(s,c)); miroir(s,m); printf("La chaine miroir est: %s\n",m); }

Entrer une chaine:abcdccEntrer un caractere:cLe nombre de caractere c dans abcdcc est=3La chaine miroire est: ccdcba

Entrer des données

Appel des fonctions

Page 36: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

36

int count(char *s,char ch) 3/3{ int c=0; while(*s!='\0')

if(*s++ ==ch)c++; return c;}

void miroir(char *s,char *t) { int l=strlen(s);

s+=l-1;while(l)

{*t++=*s--; l- -;}

*t='\0'; }

La définition de la fonction de comptage

La définition de la fonction de miroir

Page 37: 1 Les pointeurs et quelques rappels sur certains éléments du langage C.

37