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

8PRO100 Éléments de programmation Les pointeurs de caractères.

Présentations similaires


Présentation au sujet: "8PRO100 Éléments de programmation Les pointeurs de caractères."— Transcription de la présentation:

1 8PRO100 Éléments de programmation Les pointeurs de caractères

2 Constantes de type chaîne ornjuogroB Considérez une constante de type chaîne telle que "Bonjour groupe" 1) Réserve 15 octets en mémoire (14 caractères + NUL) 2) Cet espace est en lecture seulement 3) L'espace demeure toujours accessible même si "Bonjour groupe" apparaît dans une fonction. 4) Cette chaîne est un tableau de caractère donc elle correspond à une adresse en mémoire epu\0

3 Exemple char *chaine(){ return "Bonjour groupe";/* retourne l'adresse * du début de la chaîne */ } main(){ printf("%p %s\n", chaine(), chaine()); } 108f0 Bonjour groupe

4 Différence entre tableaux et pointeurs ornjuogr tab : oB p: char tab[] = "Bonjour groupe"; /* Le tableau est initialisé avec la chaine */ char *p = "Bonjour groupe"; /* Le pointeur est initialisé avec * l'adresse de la chaîne */ epu\0 ornjuogroBepu

5 Différence entre tableaux et pointeurs ornjuogr tab : oB p: char tab[] = "Bonjour groupe"; char *p = "Bonjour groupe"; tab[0] = 'H';/* Valide */ p[0] = 'H';/* Non valide */ p = tab; p[0] = 'H';/* Valide */ epu\0 ornjuogroBepu

6 Les assignations char tab1[10]="Bonjour"; char tab2[10]="groupe"; char *p=tab1, *q=tab2;  p = q;/* p pointe vers un nouvel endroit */  strcpy(p,q);/* p pointe toujours au même endroit. * La chaîne située à l'adresse q est * copiée à l'adresse p */

7 Les tableaux de pointeurs char *couleur[] = {"Coeur", "Carreau", "Trefle", "Pique"} \0Carruae couleur: \0Couer Trfeel Piuqe

8 Comparaison avec les tableaux à 2 dimensions char couleur[][8] = {"Coeur", "Carreau", "Trefle", "Pique"} \0Carruae Couleur: \0Couer Trfeel Piuqe Remarque: Il est obligatoire de donner la seconde dimension.

9 Passage en paramètre void f(char *tab[]); main(){ char *couleur[] = {"Coeur", "Carreau", "Trefle", "Pique"} f(couleur); } \0Carruae couleur: \0Couer Trfeel Piuqe tab:

10 Les paramètres de la fonction main Pour utiliser les paramètres de la ligne de commande, il faut utiliser le prototype de la fonction main suivante: main(int argc, char *argv[]) argc: Nombre d’arguments de la ligne de commande argv: Pointeurs sur un tableau de chaînes de caractères. argv[0] est le nom par lequel le programme a été appelé. argv[1] est le premier paramètre argv[argc-1] est le dernier paramètre argv[argc] vaut 0 (le pointeur NULL)

11 Les paramètres de la fonction main ergpuo\0 0 bojnruo argv: Exemple: La commade echo sur UNIX: echo bonjour groupe argc vaut 3 argv[0] vaut “echo” argv[1] vaut “bonjour” argv[2] vaut “groupe” \0eohc

12 La commande echo (version 1) ergpuo\0 0 bojnruo argv: #include main(int argc, char* argv[]){ int i; for (i=1; i<argc; i++) printf("%s%s", argv[i], (i<argc-1) ? " " : ""); printf("\n"); return 0; } \0eohc

13 La commande echo (version 2) ergpuo\0 0 bojnruo argv: #include main(int argc, char* argv[]){ while (--argc>0) printf("%s%s", *++argv, (argc>1) ? " " : ""); printf("\n"); return 0; } \0eohc


Télécharger ppt "8PRO100 Éléments de programmation Les pointeurs de caractères."

Présentations similaires


Annonces Google