Portál AbcLinuxu, 29. listopadu 2025 05:16
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í.
C se dá naučit s minimem literatury (C++ možná taky, ale mně to nešlo). Hlavní je to zkoušet a mít na to dost času. V 90. letech jsem na to měl času plno a taky jsem nikam nespěchal.
Teď už je to pěknej vopruz.
Nelituji dvou tisíc investovaných do Grahamova ANSI Common Lispu, jakož i těch dalších výdajů, co mám v plánu.
Litovat tří set za Kernighana a Ritchieho nebo dvou set za Herouta - kdo to kdy viděl? Sotva hodina práce...
. Právě kdybych to míchal dohromady, mám C++ jako obálku pro C.
+ rychle vyhledavani v dokumentech, rejstrik je "out"
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.