Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parD'artagnan Bouillon Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.