Portál AbcLinuxu, 30. dubna 2025 10:12
Učím se programovat a jako programovací jazyk jsem zvolil klasické C. Nějaký ten hrubý přehled jsem již získal z příruček a učebnic na netu různé kvality, ale stále jsou oblasti (a je jich dost ) do kterých jsem ještě pořádně neproniknul. A hlavním kamenem úrazu jsou ukazatele.
Jednu proměnnou nebo jednoduché pole v parametru funkce po chvíli (zbytečného) zkoušení a přepisování (a hledání v předchozích zdrojácích - jak jsem to jen udělal) ještě zvládnu. U složitějších věcí ale ani metoda pokus omyl nezabírá - člověk prostě musí vědět co přesně chce. Ale pak následují temnější zákoutí, které jsou pro mne černou magií (například u slovíčka dereference jen pokývnu smutně hlavou). Vždycky existuje druhé řešení - udělat to jako globální proměnné. Jenže to se mi hnusí a tak kolikrát (i na pár měsíců) s rozdělaným programem jednoduše praštím a pak mě straší všude možně.
Dalším problémem je třeba dynamická alokace paměti, ale to se dá vždycky nějak vyřešit - nevidím to zase jako takový problém, po tom co jsem si napsal v potu tváře pár funkcí .
Co jsem se tak zatím ptal, tak mi všichni radí zkoušet tohle v praxi, prostě si vyrábět příklady a dívat se jak to funguje. Jelikož už nechcu na pointerech troskotat, asi to tak udělám, ale přece jen bych chtěl mít nějakou pomůcku - učebnici stále po ruce.
Od knihy si představuji, že mě důkladně seznámí s problematikou pointeru (i na složité úrovni), krom toho tam budou i příklady (abych věděl jak to prakticky hned využít), byla by v ní zmíněna problematika dynamické alkokace a sloužila by mi i jako referenční příručka stále po ruce. Přečetl bych si ji celou, dověděl bych se mnoho pro mne nových věcí, nechal si to v hlavě uležet a pak s nějakým obecným přehledem bych získané věci zkoušel. Už prostě nechci tápat ve tmě.
Tak co, máte nějaký návrh? Knihu bych si rád koupil v net obchodě a chci předejít zklamání - proto se ptám . Děkuji za všechny podmětné reakce.
Tiskni
Sdílej:
No, používám samozřejmě vylepšenou verzi C89/99 (nevím jaký je v tom přesně rozdíl). Hlavně ať to umí /**/ :). Ale přece jen je to pořád staré dobré Céčko. A k němu linkuji SDL, takže pro například 2D hry zatím dostačující.
Hm, já věděl že jsem na něco zapoměl . Má angličtina je na úrovni... dosaď si nějaké přirovnání... prostě špatná. Jistě, používáním se daná vlastnost jen zdokonaluje, ale zrovna pointery nejsou to, co bych se snažil chápat z anglického textu. A co se týče online českých překladů / tvorby, je situace mizerná. Proto sahám k staré dobré knížce.
A ano, google samozřejmě znám a využívám ho.
PS: Pro vyhledávání řešení konkretního problému samozřejmě google / angličtina dostačuje a využívám to. Ale teď se chci něco nového naučit.
void pispole(&px){
int x,*px;//px je ukazatel
int abc[10],pqq[13];
*px=&x;//px ukazuje na x
int i;
for(i=0;i!=12;i++){
printf("%d. polozka tohoto pole je %d",&i,&px[i]);
}
}
A to je asi všechno.
Co se týče dereference, tak dereference znamená schopnost toho ukazatele ukazovat.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.