IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

souci avec les pointeurs


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut souci avec les pointeurs
    bonjour,

    je dois considérer la déclaration suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int c =12;
    int*ptr;
    ptr=&c;
    je sais que C est un entier qui vaut ici 12.
    le symbole & est l'opérateur d'adressage, et ptr vaut l'adressage de C.

    comment pourrais-je écrire les 3 lignes de déclaration des variables d'une manière plus compacte, et modifier le contenu de C à 5 en passant par le pointeur ptr.

    [Balises code rajoutées par Fiquet, merci d'y penser la prochaine fois]

  2. #2
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Tu poses la même question que ton sujet précédant ? Si oui merci d'éviter le multipost , et je pourrai supprimer ton autre sujet.

    Ton code est juste. Je sais pas ce que tu entends pas "plus compact". Tu pourrais faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int c = 12, *ptr;
    ptr = &c;
    *ptr = 5;

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 281
    Points : 11 024
    Points
    11 024
    Par défaut
    On préfère ceci:

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut souci avec les pointeurs
    bonsoir,

    merci Luc c'était tout simple, mais si *prt=5 signifie "que 5 met dans la case pointée par ptr ou //valeur pointée vaut 5, alors que veut dire*ptr= *ptr +5,mais par contre je sais que *ptr "désigne la valeur pointée par le pointeur ptr".

  5. #5
    Membre habitué Avatar de b Oo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 179
    Points : 185
    Points
    185
    Par défaut
    Citation Envoyé par arlette
    alors que veut dire*ptr= *ptr +5,mais par contre je sais que *ptr "désigne la valeur pointée par le pointeur ptr".
    Salut arlette,
    comme tu l'as dit *ptr désigne la valeur pointée par ptr, donc ici tu quand tu fais :
    il faut d'abord évaluer à droite, c'est-à-dire que l'on fait 5 + *ptr, et qu'ensuite on affecte le résultat de 5 + *ptr à *ptr.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int c =12;
    int * ptr = &c; //ptr pointe sur c
    *ptr = 5; // equivalent à c = 5
    *ptr = *ptr +5; // équivalent à c = c + 5, donc on aura *ptr = 10;
    En fait, à chaque fois que tu déclares une variable, celle-ci est crée dans un espace mémoire, et cet espace mémoire est à un certain endroit, ie une adresse. Déclarer un pointeur ptr sur une variable v, n'est rien d'autre que de dire :
    ptr contient l'adresse de v, (ie ptr pointe sur v).

    Comme on a l'adresse de v, on peut accéder à sa valeur, ceci est possible en faisant *ptr. Donc quand tu vois *ptr dans une expression, tu peux le remplacer dans ta tête par v.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2011, 19h37
  2. souci avec les pointeurs
    Par arlette dans le forum C++
    Réponses: 2
    Dernier message: 15/04/2006, 23h33
  3. [LG]Tri alphabetique avec les pointeurs
    Par zbooon dans le forum Langage
    Réponses: 4
    Dernier message: 06/03/2005, 17h04
  4. Réponses: 7
    Dernier message: 05/10/2004, 13h44
  5. [TTreeView] Problème avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/07/2004, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo