Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]concatenare espressioni di puntatori

    Ciao.
    E' un anno che programmo in c++ e sto iniziando a capire i puntatori .
    Il problema è che non riesco a capire come si concatenano .
    Come si creano quelle espressioni per me a volte incomprensibili in cui si presentano piu' di un operatore (di putatori *&& o &** ad es.).
    Avete un buon link o al limite un buon libro?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Eh?
    Qualcosa del tipo?

    T *p, *q

    if ( p && q)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    si , ma anche qualcosa del tipo **p o ***& p ecc..

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Giuseppe forse parli di puntatori doppi, tripli ecc...?

    Se è così la scrittura ***&p equivale a **p, questo perché *&p significa "considera l'indirizzo di p e prendi il valore che trovi a quell'indirizzo", cioè proprio p, quindi l'espressione *&p equivale a p. E' come se ti dicessi "vai a casa di Mario Rossi e parla con chi abita a casa di Mario Rossi (supponendo che in quella casa abiti solo lui)". Sono operatori "opposti", sarebbe un po' come dividere e moltiplicare un numero per una stessa quantità.

    In ogni caso se puoi farci un esempio più preciso per capire cos'è che non ti è chiaro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    si , parlo proprio di puntatori doppi tripli ecc...
    Ma anche del casting con puntatori.
    In particolare ad es non capisco una scrittura come questa:**p vorrebbe dire un puntatore che punta ad un altro puntatore e cosi' via?
    Quindi basta concentrarsi sull' operatore * o & e concatenare come se fosse un espressione matematica?
    Forse è piu' facile da capire che da fare.
    tuttavia esiste un buon tutorial o un libro da consigliarmi?
    Vorrei prendere thinking c++ affronta questo argomento.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Libri o link sull'argomento ce ne sono, anche se non so con quale grado di appronfondimento lo trattano e non saprei consigliartene uno in particolari.

    Comunque sì, **p significa che p è un puntatore ad un altro puntatore, ossia il suo valore è l'indirizzo di un indirizzo di memoria.

    Se consideri ad esempio una matrice NxN, sia in C che in C++ questa viene allocata per righe. Ognuna di queste righe è un array, ossia una serie di elementi di memoria che hanno un indirizzo di base (*p). Se ad esempio, con l'allocazione dinamica, allochi spazio per 5 righe, avrai un puntatore esterno **p che punta a tali righe, ma queste righe sono array (che hanno un indirizzo iniziale) quindi **p non è altro che un puntatore all'indirizzo di base delle varie righe, ossia un "puntatore a puntatore".

    codice:
     __       ____________________
    |__|  -> |__|__|__|__|__|__|__|
    |__|  -> |__|__|__|__|__|__|__|
    |__|  -> |__|__|__|__|__|__|__|
    |__|  -> |__|__|__|__|__|__|__|
    |__|  -> |__|__|__|__|__|__|__|
    Sono difficili da spiegare queste cose in poche righe (anche se relativamente facili da capire), in effetti ti servirebbe una buona documentazione di base ma come ti dicevo non saprei consigliartene. Posso solo dirti di andare a cercare un po' con big G

    Caso mai aspetta che qualcuno sappia consigliarti meglio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.