Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    35

    [C++] basi sui puntatori

    ciao a tutti.
    ho incominciato da poco a vedere bene i puntatori proprio come consigliato da alcuni di voi in altre mie discussioni, solo che mi stanno dando parecchio filo da torcere
    per esempio vi scrivo questo programmino che sintetizza un pò i miei problemi:
    codice:
    #include<iostream>
    using namespace std;
    main(){
    
    int *alfa, *beta; 
    alfa=new int;
    beta=alfa;
    *beta=32;
    beta=new int;
    *beta=33;
    cout<<*alfa;
    
    system("pause");
    return 0;
    }
    c'è qualcuno che gentilmente mi può commentare queste righe di codice cosi che io riesca a capire come lavorano i puntatori?

    grazie mille in anticipo
    saluti

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    codice:
    main()
    {
    	int *alfa, *beta;	// Hai dichiarato due puntatori a intero
    
    	alfa=new int;		// Hai allocato lo spazio per un intero e assegnato
    				// l'indirizzo di tale spazio al primo puntatore
    				// Il valore dell'intero non e' stato definito
    
    	beta=alfa;		// Hai copiato il puntatore precedente al secondo
    				// Adesso sia alfa che beta puntano alla stessa
    				// area di memoria, cioe' allo stesso valore intero
    
    	*beta=32;		// Tramite il puntatore beta viene assegnato il valore 
    				// dell'intero. Dato che e' la stessa area di memoria
    				// puntata da alfa, anche alfa punterà al valore 32
    
    	beta=new int;		// Hai allocato un nuovo spazio di memoria contenente
    				// un intero e hai assegnato il suo indirizzo a beta
    				// beta non punta piu' allo spazio puntato da alfa
    
    	*beta=33;		// Assegni il valore 33 al nuovo intero puntato da beta 
    	
    	cout<<*alfa;		// Visualizzi il valore puntato da alfa che deve essere
    				// 32 in quanto assegnato in precedenza tramite la copia
    				// di alfa fatta su beta
    
    	system("pause");
    	return 0;
    }
    E' piu' semplice di quel che pensi ... quali sono i tuoi dubbi?

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.