Jedna promenljiva ima dve razlicite adrese u ram memoriji? Da li je to uopste dobro ili nije ? Evo kako sam to ustanovio!
Primer 1:
Lociranje ram adrese date promenljive
unsigned short int shortVar = 5;
unsigned long int longVar = 65535;
std::cout<< "ShortVar RAM Address :"<< "\t" << &shortVar << "\n";
std::cout<< "LongVar RAM Address :" << "\t" << &longVar << "\n";
Posto sam locirao ram adresu promenljive gde je smestena i kao izlaz dobijam :
ShortVarRAM Address : 0 xbfb4d39 e
LongVar RAM Address : 0 xbfb4d39 8
E sada problem nastaje kada hocu da sacuvam adresu u pokazivac:
unsigned short int shortVar = 5;
unsigned long int longVar = 65535;
unsigned short int *pointer= 0; // divlji pokazivac (NULL)
//Smestanje adrese u pokazivac
pointer = &shortVar;
std::cout<< "Pointer RAM Address :" << "\t" << &pointer << "\n";
Izlaz za pointer je :
Pointer RAM Address : 0 xbfb4d39 0
Sada mene buni sledece, moje neko shvatanje ovoga je ako ja napravim pokazivac i dodam mu adresu neke promenljive on bi trebao da mi ukazuje na tu adresu koju sam zadao a ne neku drugu. Ja iskreno mislim da je on meni pokazao adresu pointera a ne adresu shotVar?
Jer ove dve promenljuve imaju dve razlicite adrese a koliko sam shvatio treba da imaju istu jer sam sa referencom preuzeo vrednost?
shortVar = 0 xbfb4d39 e
pointer = 0 xbfb4d39 0