Le offerte del compilatore a tradurre le variabili nel nostro codice in posizioni di memoria utilizzati nelle istruzioni macchina. La posizione di una variabile puntatore dipende da dove si è dichiarata nel codice, ma i programmatori di solito non hanno a che fare direttamente con quella.
Una variabile dichiarata all'interno di una funzione è presente nello stack o in un registro (a meno che non sia dichiarata statica).
Una variabile dichiarata al livello superiore risiede in una sezione di memoria nella parte superiore del programma.
Una variabile dichiarata come parte di una struttura o matrice allocata dinamicamente è presente nell'heap.
L'operatore "&" restituisce la posizione di memoria della variabile, ma a differenza dell'operatore "*", non può essere ripetuto.
Ad esempio, * * * ottengo il valore all'indirizzo * * i, che è il valore all'indirizzo * i, che è il valore memorizzato in i, che il compilatore calcola come trovare.
Ma & & non verrà compilato. & i è un numero, che è il percorso di memoria utilizzato dal compilatore per la variabile i. Questo numero non è memorizzato da nessuna parte, quindi & & non ha senso.
(Si noti che se & i è usato nel codice sorgente, il compilatore non può memorizzare i in un registro.)
rimarcato posta. Rubino? Dai. –
Così com'è, la domanda non ha senso. –
Ho praticamente risposto alla tua domanda e un paio di altri ti hanno mostrato degli esempi. C'è qualcos'altro che ti serve? –