[ _ikac @ 18.06.2013. 14:38 ] @
Imam par nejasnih stvari sto se tice pokazivaca, ne znam da li je to normalno ili nije. U sustini volim da eksperimentisem i naisao sam na sledece: 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 Code: 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 : Citat: ShortVarRAM Address : 0 xbfb4d39 e LongVar RAM Address : 0 xbfb4d39 8 E sada problem nastaje kada hocu da sacuvam adresu u pokazivac: Code: 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 : Citat: 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 |