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

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Introduction au Langage C,C++
Rappels C.
C++ 6ème cours Patrick Reuter maître de conférences
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
GEF 243B Programmation informatique appliquée
1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.
C.
Paramètres et pointeurs
Les pointeurs Manipulation d'adresses et de ce qui est contenu dans ces adresses Très important, fondamental même en C mauvaise réputation : 'dur à comprendre',
FLSI602 Génie Informatique et Réseaux
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Cours de C GTR 2003/ COURS DE PROGRAMMATION EN LANGAGE C ALBERT Arnauld.
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Programme de baccalauréat en informatique Algorithmique et programmation IFT-1001 Thierry EUDE Hatem Mahbouli Laboratoire #12 Département dinformatique.
TRAITEMENT DE STRUCTURES
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT-2000: Structures de données
Structures de données IFT-2000
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Les enregistrements (struct) suite. Struct Rappel Enregistrement : Suite de données pouvant être de types différents, accessibles via une seule variable.
8PRO100 Éléments de programmation Les types composés.
Algorithmique et langage C. Les traitements Comment utiliser les données.
Les chaînes de caractères
LANGAGE C LP A2I IUT St DIE
Une introduction à Java
Plan cours La notion de pointeur et d’adresse mémoire.
La librairie assert.h.
L’essentiel du langage C
Structures des données
Cours 7 Divers et exceptions. Chapitre V Enumeration, tableaux, conversion de types, noms.
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
Programmation Système et Réseau (sous Linux)
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Notions de pointeurs en C
Labo II : Tableaux et pointeurs
La notion de type revisitée en POO
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Argc et argv Utilisation des paramètres de la ligne de commande.
Autres éléments du langage
Communication avec l’environnement
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Les chaînes de caractères
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
8PRO100 Éléments de programmation Les tableaux multi-dimensionnels.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Exercices.
PRO-1027 Programmation Scientifique en C
3ième Classe (Mardi, 23 Septembre) CSI2572. O jourd'8: E Allocation de mémoire E Déallocation de mémoire E Tableaux (n dimensions) E Arithmetique des.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 4ème séance
Transcription de la présentation:

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

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

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

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

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

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 */

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

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.

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

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)

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

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

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