Ahoj chci se zeptat co znamena toto :
int * pt
pt=(int *)=0xB8000000;
co znamen kdyz se rekne :Vsimne te si i kdyz se jedna o adresu typu int nemusi mit vlastni promenna pt typ int
napriklad v jinem systemu muze mit typ int 2bajtovou hodnotou zatimco adtesy jsou 4bajtove
Fórum › C / C++
Adresa
To sexmachina :
int * pt
pt=(int *)=0xB8000000;
tady je oprava
To sexmachina :
int * pt
pt=(int *)0xB8000000;
kurna tady je oprava
nejak sem se v tom snad prokousal...
adresa muze ukazovat na libovolnej datovej typ... tim ze reknes toto je adresa kde je nejakej int, znamena jen to, ze pote pri adresaci pt + 1 se nezvetsi adresa o jeden Byte ale o celou velikost int... tj o 4B (nekdy jen 2B - podle systemu)
taky muzes pretypovat treba na char a nacitat jednotlivy byte toho integeru...
Další věc je asi to, že velikost adresy (pointeru) a velikost intu je sice zrovna na tom počítači, u kterýho sedíš a u toho překladače, co zrovna použváš, stejná, ale nemusí to tak být vždy. Jakože existuje počítač a překladač, kde int je třeba velkej 2 bajty a adresa přitom 4.
Poučení: když někde používáš velikost intu nebo něčeho, tak vždy psát sizeof(int) a nikdy nepsat 4.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Adresa — založil 007
Moderátoři diskuze