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 :

pointeur et array dans C++


Sujet :

C++

  1. #1
    Membre �clair� Avatar de stracoma
    Homme Profil pro
    M�decin
    Inscrit en
    Ao�t 2013
    Messages
    413
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activit� : M�decin

    Informations forums :
    Inscription : Ao�t 2013
    Messages : 413
    Par d�faut pointeur et array dans C++
    Salut � vous tous. Je d�bute en C++ et j'ai une question:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <iostream>
    #include<array>
    using namespace std;
     
    int main()
     
    {  
       array<int,5>Xtablo={1,2,3,4,5};
       for(int i(0);i<Xtablo.size();i++)
       {
           cout<<&Xtablo[i]<<endl;
       }
       cout<<" ============ "<<endl;
       for(auto elem:Xtablo)
       {
           cout<<&elem<<endl;
       }
     
        return 0;
    }
    pouquoi les deux boucles "for" ne donnent pas le m�me r�sultat ("for auto" donne la m�me adresse)
    merci � vous

  2. #2
    Membre �prouv� Avatar de KsassPeuk
    Homme Profil pro
    Ing�nieur Chercheur
    Inscrit en
    Juillet 2013
    Messages
    138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur Chercheur
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 138
    Par d�faut
    Lu'!

    Parce que la deuxi�me boucle prend une copie de chaque valeur. Si tu veux atteindre la position m�moire dans le tableau, il faut passer par une r�f�rence :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    for(auto& elem:Xtablo)
    {
       cout<<&elem<<endl;
    }

  3. #3
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Parce que for(auto e : ...) d�clare e comme un auto, c'est � dire le type de l'�l�ment.
    e est une variable temporaire qui sera toujours � la m�me adresse, et qui sera initialis�e (par copie) avec la valeur courante du bidule parcouru.

    Il y a deux autres mani�re d'utiliser for( :):
    • Avec une r�f�rence constante, pour ne pas copier l'objet, sans pour autant le modifier: for(auto const& e : ...)
    • Avec une r�f�rence modifiante, pour modifier le contenu de l'objet: for(auto & e : ...)



    Comme l'adresse d'une r�f�rence est l'adresse du r�f�r�, ces deux solutions permettent donnerait l'adresse de array[i].
    D'ailleurs std::array<...>::operator[] retourne une r�f�rence. (constante pour l'op�rateur constant, modifiante sinon)

  4. #4
    Membre �clair� Avatar de stracoma
    Homme Profil pro
    M�decin
    Inscrit en
    Ao�t 2013
    Messages
    413
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activit� : M�decin

    Informations forums :
    Inscription : Ao�t 2013
    Messages : 413
    Par d�faut
    Ok. bien compris
    Merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 10
    Dernier message: 26/04/2016, 00h52
  2. Vertex Array dans Display List ?
    Par GruZloR dans le forum OpenGL
    R�ponses: 3
    Dernier message: 29/03/2006, 12h55
  3. R�ponses: 7
    Dernier message: 04/01/2006, 15h34
  4. [MySQL] Ins�rer compl�tement un array dans une base
    Par Anduriel dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 29/12/2005, 19h52
  5. [JS] array dans un appel de fonction
    Par dib258 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 12/10/2005, 13h36

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