Le variabili in C ++ sono implicitamente puntatori
Sto attraversando un periodo difficile cercando di capirlo. Quando digitiamo in c ++
int a = 4;
È chiaro che il gestore della memoria alloca 4 byte per contenere il valore 4 e mantiene quel valore in un indirizzo specifico .. Dando il fatto che "una" variabile è solo un nome.
- Dove viene memorizzata la variabile "a"?
- Lo memorizza da qualche parte nella memoria e punta all'indirizzo di memoria di 4, poiché sappiamo che 4 è solo un oggetto temporaneo di per sé e "a" lega un riferimento o un puntatore ad esso
Risposte
Le variabili in C ++ sono implicitamente puntatori
No. Le variabili non sono puntatori impliciti.
Dove viene memorizzata la variabile "a"?
Da qualche parte (o da nessuna parte ) nella memoria. L'allocazione della memoria per le variabili è responsabilità dell'implementazione del linguaggio.
Lo memorizza da qualche parte nella memoria
Sì (o da nessuna parte).
e punta all'indirizzo di memoria 4
No. Non esiste un indicatore del genere nella macchina astratta.
Allora come fa "a" a sapere dell'oggetto "4"
4 non è un oggetto. 4 è un valore letterale o un valore a seconda del contesto / prospettiva.
anon è qualcosa che sa niente. Il compilatore sa che l'oggetto denominato da aha il valore 4.
- Dove viene memorizzata la variabile "a"?
Dalla mia esperienza, "a" non viene memorizzato in fase di esecuzione. Lo standard non richiede nemmeno che venga memorizzato. È un nome utilizzato per la compilazione, il collegamento e il debug. I dati necessari al compilatore, al linker e al debugger sono specifici della piattaforma. Lo standard non determina la natura di tali dati.
Detto questo, la tua seconda domanda può essere ignorata.