1 / 37

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

Les pointeurs et quelques rappels sur certains éléments du langage C. #include &lt;stdio.h&gt; void main() { int i1=1,i2=2; int *p1,*p2; p1=&amp;i1; p2=p1; printf(&quot;%d,%d<br>&quot;,*p1,*p2); /*affiche ?*/ p2=&amp;i2; printf(&quot;%d<br>&quot;,*p2); /*affiche ?*/ *p2=*p1; printf(&quot;%d<br>&quot;,*p2); /*affiche ?*/

charla
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. #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

  4. #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

  5. #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

  6. #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

  7. #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); } accès indirect accès direct ad=0000:0000 ad=0000:0002 ad=0000:0016 ad=0000:FFE4 n=1

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

  9. Exemple: Le prototype de la fonction #include <stdio.h> 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); } Le nombre d'elements positives=3 Le nombre d'elements negatives=2 La somme d'elements=-8

  10. 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

  11. chaîne est une valeur variable

  12. 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

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

  14. 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

More Related