Il puntatore contiene un indirizzo di base o contiene interi limiti? [chiuso]

-2

Abbiamo

int i;

che hanno 4 byte, abbiamo un indirizzo da 1000 a 1004. se abbiamo dichiarato un puntatore

int* p;
p = &i;

ora il puntatore contiene solo 1000 o da 1000 a 1004? Il puntatore contiene gli indirizzi, quindi perché è necessario dichiarare un tipo di dati a una variabile? quando dichiariamo un tipo di dati al puntatore, un puntatore può essere tipizzato tipograficamente? perché non possiamo usare void* p che può contenere qualsiasi tipo di dati?

    
posta ManideepVakulabharanam 08.02.2018 - 15:07
fonte

1 risposta

9

Il puntatore contiene solo l'indirizzo di memoria 1000. Il fatto che la memoria di un (32-bit) int si estenda a 1003 è implicito dalla dichiarazione del puntatore come di tipo int *. Puoi usare un vuoto *, ma poi perdi informazioni sul tipo sottostante e le sue dimensioni. A volte i puntatori di rifusione o la sovrapposizione, possono essere utilizzati per eseguire tutti i tipi di trucchi efficienti, ma quei trucchi sono fuori moda al giorno d'oggi

    
risposta data 08.02.2018 - 16:31
fonte

Leggi altre domande sui tag