Zdravim
Ucim sa C++ z knihy C++ za 21 dni a zasekol som sa na tejto lekcii ... cca niekde v polke. Stale neviem celkom pochopit na co su dobre ... Podla autora (ak tomu spravne rozumiem) riesia napr problem lokalnych premennych, konkretne ich kratnu zivotnost, kedze sa po ukonceni funkcie zmazu, resp prestanu existovat. Ale preco je to problem nechapem .
Zakladam temu, pretoze ukazovatele su udajne jednym z tych komplikovanejsich zalezitosti okolo C++ ale udajne su vyznamne, preto by som im chcel naozaj chapat a teda sa sem tam nieco okolo nich spytat aq nezakladat zbytocne dalsiu temu.
Neviem niekto o nejakom zdroji na ktorom su vysvetlene do bodky a fakt ludsky ? Pripadne sa pokusit vysvetlit na co presne su a v com su take vynimocne ? Rozmyslal som aj nad tym ze mozno tuto lekciu odlozim na neskor a budem sa tym zaoberat ked bude v C++ trosku zasvatenejsi. Som samouk, nie student, takze v skole mi to tiez nevysvetlia. Dakujem :)
Fórum › C / C++
C++ Ukazatele
Je důležité pochopit, co znamená naalokovat si místo na nějakou proměnnou. Je to v podstatě to, že se ti v paměti zabere určitý blok o dané velikosti, který někde začíná a někde končí. V proměnné máš poté vlastně tento kus paměti. Ukazatel se liší v tom, že nic neobsahuje, pouze odkazuje na místo v paměti. To je dobré k tomu, že zapamatovat si adresu v paměti je nesrovnatelně snazší, než její celou hodnotu. Taky je to důležité k tomu, abys mohl pracovat s poli, spojáky, stromy a podobně, kde vlastně vždy odkazuješ, pomocí ukazatele, na nějaký předchozí prvek.
tomu alokovaniu chapem(myslim). Vytvorim premennu, a ta si podla typu vyhradi miesto, resp pocet tych sektorov v pamati. Chapem aj to ukladanie adresy, len to asi vnimam zle a to tak ze vlastne teraz okrem ulozenej hodnoty mam v programe ulozeny aj ukazovatel s adresou, cize nieco navyse. Zatial zrejme proste celkom nechapem tu vyhodu len ulozenej adresy oproti ulozenej hodnote. Inak, tie pointre maju zmysel vzdy, alebo len pri istych typoch ? myslim typoch ako long,signed atd ktore zaberaju v pamati viac miesta ?
Ukazatele mají smysl u datových struktur. Takže třeba u pole, u spojového seznamu apod. Nejčastější použití je asi právě u toho pole, kdy polem procházíš pomocí posouvání hodnoty ukazatele.
@yettu_001 nie, pointere ukazuju na adresu v pamati. Proste ked sa adresuje program do pamati, vyhradzuje sa potrebna pamat tak "staticke" premenne maju vyhradene miesto v case kompilacie programu tj. tolko miesta budu zaberat vzdy. Narozdiel od toho premenne pri ktorych sa pouzije dereferencny operator */& maju toto miesto vyhradene az za beho programu a ukazovatel ukazuje na miesto v pamati (pri 32bit systemoch je tato adresa ma tato adresa 32 bitov a pri 64bit su to 64bit adresy)
Díky za upřesnění, vymazal jsem to, abych někoho nezmátl...
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
C# ukazatelé — založil Kubas129
Moderátoři diskuze