& c++

Messaggioda zerbo1000 » 25/10/2018, 19:13

ho letto che con l'operatore & si dovrebbe accedere all indirizzo di memoria della varia che segue il simbolo&

però nel seguente programma & è usato dopo una variabile che nella riga prima ha un valore assegnato, quindi in questo caso succede che restituisce il valore di quella variabile, non l'indirizzo della variabile, non capisco questo passaggio, restitusce l'indirizzo o il valore assegnato? se restituisce il valore assegnato che differenza c'è tra usare & o * ?

grazie a tutti

// operatori * e &
2 #include<iostream>
3 using namespace std;
4
5 int main(){
6 float *fp, fn=3.5;
7 fp=&fn;
8 cout << *fp << endl;
9 *fp=2.4;
10 cout << fn << endl;
11 ret
Una mente matematica cerca un fine, una mente artistica lo stabilisce.
zerbo1000
Senior Member
Senior Member
 
Messaggio: 601 di 1244
Iscritto il: 13/04/2015, 20:29

Re: & c++

Messaggioda Raptorista » 25/10/2018, 22:52

Ciao! Ti spiace modificare il tuo messaggio usando i tag per il codice? In questo modo lo rendi più facile da leggere.

Venendo al tuo problema, alla riga 6 dichiari due variabili, una di tipo float* (puntatore a float) che si chiama fp e una di tipo float che si chiama fn.
Dopo di che dici che il valore di fn, cioè il valore del puntatore, cioè l'indirizzo del blocco di memoria puntato, è uguale ad &fn (indirizzo di fn). Alla riga 8 stampi il valore *fp (il valore puntato da fp) e alla riga 9 lo riassegni.
Dalla riga 7 in avanti hai che *fp è la stessa cosa di fn.
Tieni a mente che la dichiarazione float* fp ti dice che (float*) fp, cioè fp è di tipo float*, ma anche che float (*fp), cioè *fp è di tipo float.
È più chiaro adesso?
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 5078 di 9616
Iscritto il: 28/09/2008, 19:58


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite