Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 28

Discussione: * e & in cpp

  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Originariamente inviato da Johnny_Depp
    codice:
    int pun(int *a)
    { 
       a++; // <-- guarda che 'A' è un puntatore
       return a; // <-- idem 
    }
    Era tardi...

  2. #12
    grazie

  3. #13
    20 minuti x farmi entrare in testa il fatto che c punta all' a di main e nn a quello di func
    sono recuperabile?????????????????????????'
    sono stupidoooooooooooooooooooooooooooooooooooooooooooo ooooooooooooo
    :quote: :quote: :quote: quote:

  4. #14
    poi :
    *p=&a
    sempre cosi devo scrivere?

  5. #15
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    Originariamente inviato da kpietro86
    poi :
    *p=&a
    sempre cosi devo scrivere?
    per dare ad un puntatore il valore dell'indirizzo di un'altra variabile?

    si.
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  6. #16
    *p=a punto ad un intero (tipo link simbolico)
    *p=&a punto all' indirizzo di memoria di a .............................

  7. #17
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int *p, *q, i=5;
        
       q=(int*)malloc(sizeof(int)) ;
        
        /* 'p' punta all'indirizzo di memoria di 'i', quindi '*p' conterra il valore di 'i' (cioè 5) */
        p=&i;  
        
        /* visualizzo in entrambi i casi il valore di 'i' (5) */
        printf("P:%d I:%d\n", *p, i); 
        
        /* se assegno a '*p' un VALORE diverso da quello contenuto in 'i', anche il valore di 'i' cambia (ora 'i' ha come valore 2). */ 
        *p=2; 
    
        /* visualizzo in entrambi i casi il valore di 'i' (2) */
        printf("P:%d I:%d\n", *p, i); 
        
        /* ORA FAI ATTENZIONE!!! */
        
        /* '*q' non punta all'indirizzo di memoria di 'i', ma al valore di 'i' (cioè a 2) e tu dirai: e allora!? cosa cambia? */     
        *q=i; 
        
        /* visualizzo in entrambi i casi il valore di 'i' (2) (fin qua le cose non sembrano essere cambiate...) */
        printf("Q:%d I:%d\n", *q, i); 
        
        /* invece, sono cambiate. Se ora assegno a '*q' il valore 1, (cosa che ho fatto anche nel precedente esempio (con il puntatore '*p') */
        *q=1;   
        
        /* questa volta visualizzo due valori diversi, perchè in questo caso il valore di 'i' è rimasto invariato. (indovina perchè!?) */ 
        printf("Q:%d I:%d\n", *q, i); 
        
        system("PAUSE");
        return 0;
    }
    N.B. il tuo esempio:
    *p=&a // è errato!!! nel senso che non si pùo fare.

    ...dimenticavo: i puntatori, non si studiano in 20 minuti
    ...Terrible warlords, good warlords, and an english song

  8. #18
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    Originariamente inviato da Johnny_Depp
    ...dimenticavo: i puntatori, non si studiano in 20 minuti
    condivido
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  9. #19
    finalmente ho capito ..........................................

    veramente sta volta..........
    cmq , nn ci ho messo 20 minuti a capirli ma in totale 2 settimane .

  10. #20
    /* '*q' non punta all'indirizzo di memoria di 'i', ma al valore di 'i' (cioè a 2) e tu dirai: e allora!? cosa cambia? */
    *q=i;

    mi da core dumped il compilatore
    se metto invece q=&i
    no problem

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 © 2026 vBulletin Solutions, Inc. All rights reserved.