La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "1 Les pointeurs et quelques rappels sur certains éléments du langage C."— Transcription de la présentation:

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

2 2

3 3

4 4

5 5

6 6

7 7

8 8 #include 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,1 2 1

9 9 #include int main() { int i; int *j; i = 1; j = &i; *j = 2; printf("i vaut : %d\n", i); return 0; } i vaut : 2

10 10 #include 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

11 11 #include 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

12 12 #include 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

13 13 #include 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:0000 ad=0000:0002 ad=0000:0016 ad=0000:FFE4 n=1 accès direct accès indirect

14 14

15 15

16 16

17 17

18 18

19 19

20 20

21 21

22 22

23 23

24 24

25 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é.

26 26 #include 1/2 void 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=3 Le nombre d'elements negatives=2 La somme d'elements=-8 Le prototype de la fonction

27 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

28 28

29 29 chaîne est une valeur variable

30 30

31 31

32 32

33 33

34 34 Exemple: Faire un programme C à trouver: 1) le nombre doccurrence dun caractère donné dans une chaîne de caractère donné; 2) la chaîne miroir de la chaîne donné. #include 1/3 #include int count(char *s,char ch); void miroir(char *s,char *t); Les prototypes des fonctions

35 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:abcdcc Entrer un caractere:c Le nombre de caractere c dans abcdcc est=3 La chaine miroire est: ccdcba Entrer des données Appel des fonctions

36 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

37 37


Télécharger ppt "1 Les pointeurs et quelques rappels sur certains éléments du langage C."

Présentations similaires


Annonces Google