Програм 19 10
Oct 19, 2026 19:01
· 1:49:17
· Czech
· Whisper Turbo
· 8 Mpitondra teny
Tapitra ao anatin'ny 9 andro.
Handefa ny rakitra ho any amin'ny toerana tsy miova →
Asehoy fotsiny
0:00
S…
Speaker 1 (Програм 19 10)
Utrát už je tak ambičný jako kličovícové monitor
0:04
S…
Speaker 1 (Програм 19 10)
a říkali jsme,
0:06
S…
Speaker 1 (Програм 19 10)
že je to ty,
0:08
S…
Speaker 1 (Програм 19 10)
který má velikost podle toho,
0:11
S…
Speaker 1 (Програм 19 10)
do jakého cíle ten program překládáte.
0:16
S…
Speaker 1 (Програм 19 10)
V případě, že ho překládáme 200 -bitový výstupčník,
0:20
S…
Speaker 2 (Програм 19 10)
tak má 4 bajty,
0:22
S…
Speaker 1 (Програм 19 10)
tři 4 až 60 ditek.
0:24
S…
Speaker 1 (Програм 19 10)
Už jsme si minule ukazovali,
0:26
S…
Speaker 1 (Програм 19 10)
že to číslo se mění,
0:28
S…
Speaker 1 (Програм 19 10)
i to místo té paměti,
0:32
S…
Speaker 1 (Програм 19 10)
které ten ukazatel zabírá,
0:34
S…
Speaker 1 (Програм 19 10)
se taky mění tohle toho,
0:35
S…
Speaker 1 (Програм 19 10)
jak si v tom výbojovém prostředí zvolíme,
0:39
S…
Speaker 1 (Програм 19 10)
jak chceme ten cíl uní,
0:43
S…
Speaker 1 (Програм 19 10)
jestli vás se tímto dvě nebo přižije šeděstátky dvě.
0:47
S…
Speaker 1 (Програм 19 10)
Jak ho zatýčeme do toho zdrojového
0:51
S…
Speaker 1 (Програм 19 10)
odhodu, tak je následovná ten typ
0:55
S…
Speaker 1 (Програм 19 10)
toho objektu,
0:56
S…
Speaker 1 (Програм 19 10)
na který ten ukazatel ukazuje.
0:58
S…
Speaker 1 (Програм 19 10)
Už jsme si říkali,
1:00
S…
Speaker 1 (Програм 19 10)
že to tam je z toho důvodu,
1:01
S…
Speaker 1 (Програм 19 10)
aby pak fungovala ta dereference.
1:04
S…
Speaker 1 (Програм 19 10)
Aby když si řekneme,
1:06
S…
Speaker 1 (Програм 19 10)
dej mi číslo nebo dej mi nějaký objekt,
1:10
S…
Speaker 1 (Програм 19 10)
kam ten ukazatel ukazuje,
1:12
S…
Speaker 1 (Програм 19 10)
tak aby...
1:15
S…
Speaker 1 (Програм 19 10)
Ten počítač věděl,
1:16
S…
Speaker 1 (Програм 19 10)
jak ten objekt je typu a podle toho věděl,
1:20
S…
Speaker 1 (Програм 19 10)
jestli vám má přečíst jeden byte nebo čtyři byte nebo
1:25
S…
Speaker 1 (Програм 19 10)
osm byte a má to interpretovat jako celé číslo nebo
1:29
S…
Speaker 1 (Програм 19 10)
jako číslo s poříblivou řádovou čárkou.
1:32
S…
Speaker 1 (Програм 19 10)
Takže ten typ je tam potřeba.
1:34
S…
Speaker 1 (Програм 19 10)
Kdybyste ten typ neznali nebo nechtěli definovat,
1:39
S…
Speaker 1 (Програм 19 10)
chtěli mít skutečně ten ukazatel jenom jako adresu,
1:43
S…
Speaker 1 (Програм 19 10)
tak se tam dá do toho pěchu klíčové slovo Vojt.
1:47
S…
Speaker 1 (Програм 19 10)
Vojt znamená,
1:49
S…
Speaker 1 (Програм 19 10)
kdyby prázdný,
1:50
S…
Speaker 1 (Програм 19 10)
to jest,
1:51
S…
Speaker 1 (Програм 19 10)
že není nějak definovaný.
1:53
S…
Speaker 1 (Програм 19 10)
Pak následuje hvězdička a
1:58
S…
Speaker 1 (Програм 19 10)
pak následuje ten váš název,
2:00
S…
Speaker 1 (Програм 19 10)
jak jste se ten ukazatel pojmenovali.
2:02
S…
Speaker 1 (Програм 19 10)
Tu hvězdičku můžete přilepit jak k tomu
2:07
S…
Speaker 1 (Програм 19 10)
typu, tak i k tomu názvu,
2:10
S…
Speaker 1 (Програм 19 10)
který jste si vytvořili.
2:12
S…
Speaker 1 (Програм 19 10)
Takže jsou v podstatě,
2:14
S…
Speaker 3 (Програм 19 10)
jak kdyby,
2:15
S…
Speaker 1 (Програм 19 10)
dva působy zápisu.
2:17
S…
Speaker 1 (Програм 19 10)
Každý má něco.
2:19
S…
Speaker 1 (Програм 19 10)
Tady tento,
2:20
S…
Speaker 1 (Програм 19 10)
tady je jasné,
2:21
S…
Speaker 1 (Програм 19 10)
když dáte to hvězdička k sobě,
2:23
S…
Speaker 1 (Програм 19 10)
takže tím hvězdičkem je ukazatelný.
2:27
S…
Speaker 1 (Програм 19 10)
Takže to hvězdičku bude ukazatelný.
2:30
S…
Speaker 1 (Програм 19 10)
Tady zase u tohoto nápisu můžete vytvořit
2:35
S…
Speaker 1 (Програм 19 10)
více těch objektů typu
2:39
S…
Speaker 1 (Програм 19 10)
int na jednou a přičemž některé z nich budou klasické
2:43
S…
Speaker 1 (Програм 19 10)
objekty typu int a některé z nich budou ukazatele na int.
2:47
S…
Speaker 1 (Програм 19 10)
Takže tady můžete dát int,
2:48
S…
Speaker 1 (Програм 19 10)
mezera, dvězdička,
2:50
S…
Speaker 1 (Програм 19 10)
můj to tr,
2:50
S…
Speaker 1 (Програм 19 10)
čárka třeba a a pak to vytvoří objekt,
2:55
S…
Speaker 1 (Програм 19 10)
který bude typu int.
2:57
S…
Speaker 1 (Програм 19 10)
a bude se jmenovat A a zároveň to vytvoří objekt,
3:01
S…
Speaker 1 (Програм 19 10)
který se bude jmenovat monoprtera a bude to ukazatel na typ I.
3:05
S…
Speaker 1 (Програм 19 10)
Takže tu hvěstičku prostě si dávejte
3:09
S…
Speaker 1 (Програм 19 10)
kam chcete,
3:10
S…
Speaker 1 (Програм 19 10)
ale jak říkám,
3:11
S…
Speaker 1 (Програм 19 10)
každá ta možnost má něco.
3:15
S…
Speaker 1 (Програм 19 10)
Já osobně,
3:16
S…
Speaker 1 (Програм 19 10)
jestli takové doporučení,
3:18
S…
Speaker 1 (Програм 19 10)
o kterém budu mluvit až na té poslední předážce,
3:22
S…
Speaker 1 (Програм 19 10)
což jsou takové doporučení,
3:26
S…
Speaker 1 (Програм 19 10)
které bývají třeba ve firmách,
3:28
S…
Speaker 1 (Програм 19 10)
abyste tam jako programátoři písali
3:32
S…
Speaker 1 (Програм 19 10)
koho, který o vás pak přečtěl jiným programátoři,
3:35
S…
Speaker 1 (Програм 19 10)
takže pokud chcete dělat na nějakém projektu,
3:37
S…
Speaker 1 (Програм 19 10)
kde bude dělat víc lidí,
3:39
S…
Speaker 1 (Програм 19 10)
tak je dobere nějaká pravidla a vysát to nějak jednotně.
3:43
S…
Speaker 1 (Програм 19 10)
tak já třeba osobně bych se přiklonil do pravidlu,
3:47
S…
Speaker 1 (Програм 19 10)
že bych teda tu dvězdičku psal k tomu intu,
3:51
S…
Speaker 1 (Програм 19 10)
a když bych chtěl vytvořit dvě proměné,
3:55
S…
Speaker 1 (Програм 19 10)
tak nebudu psát tady int dvězdička,
3:58
S…
Speaker 4 (Програм 19 10)
můj prtr,
3:58
S…
Speaker 1 (Програм 19 10)
čárka A,
4:00
S…
Speaker 1 (Програм 19 10)
ale napsal bych to na další řádi.
4:02
S…
Speaker 1 (Програм 19 10)
Bude to přehlednější,
4:04
S…
Speaker 1 (Програм 19 10)
když napíšete dvakrát doslovo int,
4:07
S…
Speaker 1 (Програм 19 10)
ale bude to přehlednější.
4:08
S…
Speaker 1 (Програм 19 10)
Takže jenom bych napsal int dvězdičku.
4:11
S…
Speaker 1 (Програм 19 10)
nálepenou k tomu útům,
4:12
S…
Speaker 1 (Програм 19 10)
no je to teda střední,
4:13
S…
Speaker 1 (Програм 19 10)
a po to bych napsal út A.
4:15
S…
Speaker 1 (Програм 19 10)
A pak tam není pochyt a je to jasné,
4:19
S…
Speaker 1 (Програм 19 10)
že toto je u výbu ukazatela a toto je u
4:23
S…
Speaker 4 (Програм 19 10)
výbu klasické.
4:24
S…
Speaker 1 (Програм 19 10)
Takže tolik k té
4:28
S…
Speaker 1 (Програм 19 10)
syntaxi,
4:29
S…
Speaker 1 (Програм 19 10)
jak to zapisovat.
4:30
S…
Speaker 1 (Програм 19 10)
A teď si připomeneme,
4:31
S…
Speaker 1 (Програм 19 10)
jak je to uloženo v té paměti,
4:34
S…
Speaker 1 (Програм 19 10)
jak je to organizováno.
4:36
S…
Speaker 1 (Програм 19 10)
My už jsme to tady minule ukazovali.
4:40
S…
Speaker 1 (Програм 19 10)
To ještě jednou zopakujeme.
4:43
S…
Speaker 1 (Програм 19 10)
Tak když vytvoříte třeba tady ty lidě
4:47
S…
Speaker 1 (Програм 19 10)
proměny a jeden ten ukazatel v tom vašem kohlu,
4:51
S…
Speaker 1 (Програм 19 10)
tak co se stane v té paměti?
4:54
S…
Speaker 1 (Програм 19 10)
Vytvoříte nějakou proměnou,
4:57
S…
Speaker 1 (Програм 19 10)
nebo tady deklarujete a tady je zrovna jiný.
5:01
S…
Speaker 1 (Програм 19 10)
takže deklarují a inicializují paměnou.
5:06
S…
Speaker 1 (Програм 19 10)
Tak když toto oddělám,
5:07
S…
Speaker 1 (Програм 19 10)
tak se mi někde v paměti vytvoří pamětový prostor
5:12
S…
Speaker 2 (Програм 19 10)
takový,
5:13
S…
Speaker 1 (Програм 19 10)
aby se do toho vzl typ I.
5:15
S…
Speaker 1 (Програм 19 10)
Takže když napíšu jenom int a a měl bych tady středník,
5:19
S…
Speaker 1 (Програм 19 10)
tak prostě někde v paměti po napsání toho příkazu nebo spíše
5:23
S…
Speaker 2 (Програм 19 10)
poslušení toho programu,
5:25
S…
Speaker 1 (Програм 19 10)
když se bude provádět tento příkaz,
5:29
S…
Speaker 1 (Програм 19 10)
tak se někde v paměti rezervuje tady tento
5:33
S…
Speaker 3 (Програм 19 10)
prostor.
5:33
S…
Speaker 1 (Програм 19 10)
Ten počítač
5:38
S…
Speaker 1 (Програм 19 10)
bude vědět,
5:39
S…
Speaker 1 (Програм 19 10)
že
5:40
S…
Speaker 1 (Програм 19 10)
Ten požadovaný typ,
5:42
S…
Speaker 1 (Програм 19 10)
který tam máte a který chcete vytvořit je typu IN
5:46
S…
Speaker 1 (Програм 19 10)
a oblížet typ IN za tady čtyři bajty,
5:49
S…
Speaker 1 (Програм 19 10)
takže tam v paměti rezervuje čtyři bajty.
5:52
S…
Speaker 1 (Програм 19 10)
Třeba jako příklad vám může zabrat tady
5:57
S…
Speaker 1 (Програм 19 10)
tyto čtyři bajty o sobě idoucí.
5:59
S…
Speaker 1 (Програм 19 10)
a ty si označí,
6:03
S…
Speaker 1 (Програм 19 10)
že patří tomu procesu,
6:05
S…
Speaker 1 (Програм 19 10)
který jste zpustili.
6:06
S…
Speaker 1 (Програм 19 10)
Takže operační systém ví,
6:09
S…
Speaker 1 (Програм 19 10)
že to prostě patří vám,
6:11
S…
Speaker 1 (Програм 19 10)
nebude do toho nikdo jiný zasahovat.
6:15
S…
Speaker 1 (Програм 19 10)
Paměťový manager,
6:16
S…
Speaker 1 (Програм 19 10)
který by alokoval nějakou paměť,
6:19
S…
Speaker 1 (Програм 19 10)
tak prostě má toto místo obsazené.
6:23
S…
Speaker 1 (Програм 19 10)
a nikdy to nebude nikomu jinému přidělovat,
6:26
S…
Speaker 1 (Програм 19 10)
prostě bude to jenom pro vás.
6:27
S…
Speaker 1 (Програм 19 10)
Takže tady máte to A spojené tady s těmito
6:31
S…
Speaker 1 (Програм 19 10)
čtyřmi byte.
6:32
S…
Speaker 1 (Програм 19 10)
A cokoliv do toho A zapíšete,
6:36
S…
Speaker 1 (Програм 19 10)
tak budete zapisovat tady do těchto čtyřet byte.
6:39
S…
Speaker 1 (Програм 19 10)
Pak jsme říkali,
6:40
S…
Speaker 1 (Програм 19 10)
že je tam takovéto pravidlo,
6:42
S…
Speaker 1 (Програм 19 10)
že ten nejméně významný byte je jako první.
6:45
S…
Speaker 1 (Програм 19 10)
To znamená,
6:46
S…
Speaker 1 (Програм 19 10)
že nejméně významný byte je na té nejnižší adrese,
6:49
S…
Speaker 1 (Програм 19 10)
což je ta počáteční adresa toho objektu A.
6:53
S…
Speaker 1 (Програм 19 10)
Takže ta pětka je možná tady.
6:56
S…
Speaker 1 (Програм 19 10)
A ty výšší,
6:57
S…
Speaker 1 (Програм 19 10)
jak se decimální tvarovi,
7:02
S…
Speaker 1 (Програм 19 10)
to byly statky 10 000.
7:07
S…
Speaker 1 (Програм 19 10)
Takže toto jsou ty vyšší byte,
7:10
S…
Speaker 1 (Програм 19 10)
tak následují.
7:11
S…
Speaker 1 (Програм 19 10)
Takže tento objekt A
7:15
S…
Speaker 1 (Програм 19 10)
má 4 byte,
7:16
S…
Speaker 1 (Програм 19 10)
je spojen tedy tady s tím typem A.
7:21
S…
Speaker 1 (Програм 19 10)
A ten typ A jako takový má samozřejmě i
7:25
S…
Speaker 1 (Програм 19 10)
adresu nějakou vstupní do toho
7:29
S…
Speaker 1 (Програм 19 10)
objektu.
7:31
S…
Speaker 1 (Програм 19 10)
A když bychom chtěli tuto adresu získat,
7:34
S…
Speaker 1 (Програм 19 10)
tak jak se ještě ukážeme,
7:36
S…
Speaker 1 (Програм 19 10)
tak minule jsme to tady děli,
7:39
S…
Speaker 1 (Програм 19 10)
takže to můžu prozradit,
7:41
S…
Speaker 1 (Програм 19 10)
dáte před to takový ten symbol end.
7:44
S…
Speaker 1 (Програм 19 10)
A když napíšete NA,
7:46
S…
Speaker 1 (Програм 19 10)
tak je to výraz,
7:48
S…
Speaker 1 (Програм 19 10)
který vám bude vracet adresu toho objektu A.
7:52
S…
Speaker 1 (Програм 19 10)
Ta adresa toho
7:56
S…
Speaker 1 (Програм 19 10)
objektu A bude vlastně ta adresa té první
8:00
S…
Speaker 1 (Програм 19 10)
pamětěvé runky v tom objektu.
8:02
S…
Speaker 1 (Програм 19 10)
Takže jestliž ten objekt zavírá to čtyři byte,
8:05
S…
Speaker 1 (Програм 19 10)
to čtyři adresy,
8:07
S…
Speaker 1 (Програм 19 10)
tak ta adresa toho objektu A je vlastně tou první
8:11
S…
Speaker 1 (Програм 19 10)
adresou,
8:12
S…
Speaker 1 (Програм 19 10)
tou nejnížší.
8:13
S…
Speaker 1 (Програм 19 10)
Takže kdybyste napsali NA,
8:15
S…
Speaker 1 (Програм 19 10)
tak vám to vrátí tady toto číslo.
8:17
S…
Speaker 1 (Програм 19 10)
Toto je to pořadové číslo té homokové homoky,
8:22
S…
Speaker 3 (Програм 19 10)
kde je důložen nejméně významnýma.
8:24
S…
Speaker 1 (Програм 19 10)
Stejně tak,
8:26
S…
Speaker 1 (Програм 19 10)
když pak vytvoříte V,
8:27
S…
Speaker 1 (Програм 19 10)
tak to V se vytvoří někde vedle toho.
8:31
S…
Speaker 1 (Програм 19 10)
Teď ty pravidla,
8:32
S…
Speaker 1 (Програм 19 10)
jak se to skládá.
8:36
S…
Speaker 1 (Програм 19 10)
Je to různé,
8:38
S…
Speaker 1 (Програм 19 10)
můžou se ty objekty skládá za sebe,
8:40
S…
Speaker 1 (Програм 19 10)
to znamená,
8:41
S…
Speaker 1 (Програм 19 10)
bude A,
8:41
S…
Speaker 1 (Програм 19 10)
pak dál paměti,
8:43
S…
Speaker 1 (Програм 19 10)
bude B, nebo opačně,
8:47
S…
Speaker 1 (Програм 19 10)
že máte A na nižší adresé B.
8:50
S…
Speaker 1 (Програм 19 10)
a pak ještě na nejnižší debug .tr,
8:52
S…
Speaker 1 (Програм 19 10)
záleží na optimalizaci,
8:54
S…
Speaker 1 (Програм 19 10)
záleží, jestli to překládáte debug .release a tak dále.
8:57
S…
Speaker 1 (Програм 19 10)
Když jistujeme toho debug .release,
9:00
S…
Speaker 1 (Програм 19 10)
tak toho debug,
9:01
S…
Speaker 1 (Програм 19 10)
tam je hlavně to,
9:04
S…
Speaker 1 (Програм 19 10)
že ty objekty jsou od sebe
9:08
S…
Speaker 1 (Програм 19 10)
obděleny nějakou mezerou.
9:10
S…
Speaker 1 (Програм 19 10)
Takže kdybyste to překládali do debugu,
9:12
S…
Speaker 1 (Програм 19 10)
to způsobněle ukazovali,
9:14
S…
Speaker 1 (Програм 19 10)
tak ten objek A a B není takhle vedle sebe,
9:17
S…
Speaker 3 (Програм 19 10)
ale je mezi nimi
9:19
S…
Speaker 1 (Програм 19 10)
několik bytů mezera,
9:21
S…
Speaker 1 (Програм 19 10)
která je standardně vyplněna obsahem CC,
9:25
S…
Speaker 1 (Програм 19 10)
což odpovídá 1 .0 .1 .0
9:30
S…
Speaker 1 (Програм 19 10)
takovým vzorem,
9:31
S…
Speaker 1 (Програм 19 10)
takže je to snadno detekovatelné.
9:33
S…
Speaker 1 (Програм 19 10)
A vy potom při tom vybakování vidíte,
9:38
S…
Speaker 1 (Програм 19 10)
jestli vám obsah této buňky nepřerostl
9:43
S…
Speaker 1 (Програм 19 10)
zahranice toho objektu,
9:45
S…
Speaker 1 (Програм 19 10)
který je teda dál těmi čtěřmi bytů.
9:48
S…
Speaker 1 (Програм 19 10)
A kdyby se vám objevilo něco před tím nebo zatím,
9:52
S…
Speaker 1 (Програм 19 10)
nějaký zápis,
9:53
S…
Speaker 1 (Програм 19 10)
nějaká hodnota do těch míst,
9:55
S…
Speaker 1 (Програм 19 10)
kde je nasáhnout CC,
9:57
S…
Speaker 1 (Програм 19 10)
tak víte,
9:58
S…
Speaker 1 (Програм 19 10)
že je něco špatně v tom.
10:00
S…
Speaker 1 (Програм 19 10)
na vašem programu,
10:00
S…
Speaker 1 (Програм 19 10)
že to leze nějak záhranice toho objektu a
10:05
S…
Speaker 1 (Програм 19 10)
že je tam nějaká potenciální chyba a to musíte odstranit.
10:08
S…
Speaker 1 (Програм 19 10)
Tak proto v tom debugu se tam dávají.
10:12
S…
Speaker 1 (Програм 19 10)
ty mezery mezi ty objekty,
10:15
S…
Speaker 1 (Програм 19 10)
abyste to dokázali detekovat a přitom si nerozbili
10:19
S…
Speaker 1 (Програм 19 10)
chování toho programu.
10:20
S…
Speaker 1 (Програм 19 10)
Protože v releaseu,
10:22
S…
Speaker 1 (Програм 19 10)
kdybyste zapsali před tuto adresu,
10:24
S…
Speaker 1 (Програм 19 10)
tak vlastně před tu adresu toho objektu A o jeden byte,
10:28
S…
Speaker 1 (Програм 19 10)
tak vlastně zapíšete do objektu B.
10:31
S…
Speaker 1 (Програм 19 10)
Jinak u těch typu A,
10:33
S…
Speaker 1 (Програм 19 10)
jako že jste zapsali mimo ten rozsah,
10:36
S…
Speaker 1 (Програм 19 10)
to asi ne.
10:37
S…
Speaker 1 (Програм 19 10)
protože ukazotelová aritmetika,
10:40
S…
Speaker 1 (Програм 19 10)
se kterou budete pracovat,
10:41
S…
Speaker 1 (Програм 19 10)
tak ona si to pohlídá.
10:42
S…
Speaker 1 (Програм 19 10)
Problém by byl,
10:43
S…
Speaker 1 (Програм 19 10)
kdybyste tam měli nějaké pole,
10:45
S…
Speaker 1 (Програм 19 10)
a zapsat zahráníce pole zase už takový problém není,
10:49
S…
Speaker 1 (Програм 19 10)
což si ukážeme potom ještě dnešní
10:53
S…
Speaker 1 (Програм 19 10)
přednášce a o chvíli později,
10:55
S…
Speaker 1 (Програм 19 10)
když si tam budeme dávat
10:59
S…
Speaker 1 (Програм 19 10)
nějaké řekce.
11:01
S…
Speaker 1 (Програм 19 10)
Vidíte, že musíte zapsat znak za velikost,
11:05
S…
Speaker 2 (Програм 19 10)
který je volen,
11:06
S…
Speaker 1 (Програм 19 10)
další není žádný problém.
11:08
S…
Speaker 1 (Програм 19 10)
A prvnou tedy ty věci kolem toho
11:13
S…
Speaker 1 (Програм 19 10)
výbarku a kolem těch mezér,
11:15
S…
Speaker 4 (Програм 19 10)
kolem těch objektů,
11:16
S…
Speaker 3 (Програм 19 10)
které jsou.
11:17
S…
Speaker 1 (Програм 19 10)
Takže jsme měli objekty A,
11:19
S…
Speaker 4 (Програм 19 10)
objekty B,
11:20
S…
Speaker 1 (Програм 19 10)
oba typu I,
11:21
S…
Speaker 2 (Програм 19 10)
takže čtyři bajty,
11:22
S…
Speaker 1 (Програм 19 10)
čtyři bajty,
11:23
S…
Speaker 1 (Програм 19 10)
nejméně významný bajt je ten prvník proti batické,
11:27
S…
Speaker 5 (Програм 19 10)
kadiátářní.
11:28
S…
Speaker 1 (Програм 19 10)
A pak vytváříme tady majitot R.
11:32
S…
Speaker 1 (Програм 19 10)
V majitot R jsme říkali,
11:34
S…
Speaker 1 (Програм 19 10)
že v případě 31 bytů,
11:36
S…
Speaker 1 (Програм 19 10)
což je tato okázka,
11:37
S…
Speaker 1 (Програм 19 10)
by to nemělo úplně velké,
11:39
S…
Speaker 1 (Програм 19 10)
ale tyto čísla by nemělo velké,
11:41
S…
Speaker 1 (Програм 19 10)
u 4 až 60 bytů by tady tyto čísla byly od následně velké.
11:46
S…
Speaker 1 (Програм 19 10)
což jsme se zase taky minulem ukazovali,
11:48
S…
Speaker 1 (Програм 19 10)
tak od těch dva třicetibitů ten typ ukazatel
11:53
S…
Speaker 1 (Програм 19 10)
na i a ukazatel na cokoliv prostě je vždycky
11:57
S…
Speaker 1 (Програм 19 10)
dva třicetibitový,
11:59
S…
Speaker 1 (Програм 19 10)
takže je to nějaké číslo,
12:01
S…
Speaker 1 (Програм 19 10)
takže zase musíme v paměti proezerzovat nějaké číslo.
12:04
S…
Speaker 1 (Програм 19 10)
To,
12:07
S…
Speaker 1 (Програм 19 10)
že v tom čísle na začátku jsou takhle nuly,
12:09
S…
Speaker 1 (Програм 19 10)
tak to je jako...
12:12
S…
Speaker 1 (Програм 19 10)
tady v té mé ukázce,
12:14
S…
Speaker 1 (Програм 19 10)
ale ve skutečnosti by tam byly nějaké náhodné hodnoty,
12:18
S…
Speaker 1 (Програм 19 10)
protože já jsem ten ukazatel tady nějak neinicializoval.
12:21
S…
Speaker 1 (Програм 19 10)
Mám ten ukazatel bez inicializace,
12:25
S…
Speaker 1 (Програм 19 10)
to znamená,
12:26
S…
Speaker 1 (Програм 19 10)
ty hodnoty uvnitř toho ukazatele nejsou nějak definované.
12:30
S…
Speaker 1 (Програм 19 10)
A v jazyce C,
12:31
S…
Speaker 1 (Програм 19 10)
když deklarujete proměnou,
12:33
S…
Speaker 1 (Програм 19 10)
tak není nějaká prvotní počáteční
12:38
S…
Speaker 1 (Програм 19 10)
inicializace.
12:39
S…
Speaker 1 (Програм 19 10)
V některých jazycích to je,
12:41
S…
Speaker 1 (Програм 19 10)
nastaví se to na nějakou vypolupní hodnotu,
12:44
S…
Speaker 1 (Програм 19 10)
takže v případě tohoto by se nastavilo asi na nulu,
12:47
S…
Speaker 1 (Програм 19 10)
ale v jazyce C toto není.
12:49
S…
Speaker 1 (Програм 19 10)
Má to své výhody a nevýhody.
12:51
S…
Speaker 1 (Програм 19 10)
Samozřejmě nevýhody je,
12:53
S…
Speaker 1 (Програм 19 10)
že na to musíte myslet a nemůžete to rovnou použít a musíte
12:57
S…
Speaker 1 (Програм 19 10)
tam napřed něco dosadit.
12:59
S…
Speaker 1 (Програм 19 10)
A výhody to má v tom,
13:00
S…
Speaker 1 (Програм 19 10)
že máte plně v moci,
13:03
S…
Speaker 1 (Програм 19 10)
co se vlastně v tom konu děje.
13:06
S…
Speaker 1 (Програм 19 10)
že vy v zápětí do toho Micoterm budete ukládat,
13:09
S…
Speaker 1 (Програм 19 10)
tak nemá smysl,
13:11
S…
Speaker 1 (Програм 19 10)
aby předtím tam proběhla nějaká instrukce,
13:13
S…
Speaker 1 (Програм 19 10)
která bude obsah toho ukazatele mazat,
13:17
S…
Speaker 1 (Програм 19 10)
když ho stejně budete přepisovat.
13:19
S…
Speaker 1 (Програм 19 10)
Takže tam máte kout navíc,
13:21
S…
Speaker 1 (Програм 19 10)
který bude zbytečně zatěžovat procesovat.
13:24
S…
Speaker 1 (Програм 19 10)
A protože ten jazyk C se dělá právě na ty
13:28
S…
Speaker 1 (Програм 19 10)
časově kritické věci,
13:31
S…
Speaker 1 (Програм 19 10)
tak to je důvod,
13:32
S…
Speaker 1 (Програм 19 10)
proč to tam není automat.
13:35
S…
Speaker 1 (Програм 19 10)
Ale tady v té mém ukázce si to představte,
13:38
S…
Speaker 1 (Програм 19 10)
že tam tu nulu mám,
13:39
S…
Speaker 1 (Програм 19 10)
takže to mám takhle vymulované.
13:41
S…
Speaker 6 (Програм 19 10)
Ve skutečnosti,
13:41
S…
Speaker 1 (Програм 19 10)
jak se podíváme,
13:43
S…
Speaker 1 (Програм 19 10)
tak tam tak,
13:44
S…
Speaker 1 (Програм 19 10)
kdyby to bylo vyčištené na nulu.
13:46
S…
Speaker 1 (Програм 19 10)
Takže ten objekt Michael Thurl má zase čtyři
13:50
S…
Speaker 1 (Програм 19 10)
baždy a je vnitř ten,
13:52
S…
Speaker 1 (Програм 19 10)
kde vedle tady těch objektů.
13:55
S…
Speaker 1 (Програм 19 10)
Teď budeme dělat nějaké operace.
13:58
S…
Speaker 1 (Програм 19 10)
První věc,
13:58
S…
Speaker 1 (Програм 19 10)
vyděláme to,
13:59
S…
Speaker 1 (Програм 19 10)
že do toho mají to prv,
14:01
S…
Speaker 1 (Програм 19 10)
uložíme adresu Ačka.
14:03
S…
Speaker 1 (Програм 19 10)
Jak jsem tady před chvíli říkal,
14:05
S…
Speaker 1 (Програм 19 10)
tak adresu Ačka získáme,
14:07
S…
Speaker 1 (Програм 19 10)
že napíšeme výraz A a předtom uložíme ten symbol
14:12
S…
Speaker 1 (Програм 19 10)
N.
14:12
S…
Speaker 1 (Програм 19 10)
Ten symbol N je jakýsi operátor,
14:16
S…
Speaker 1 (Програм 19 10)
který získává adresu z toho objektu,
14:18
S…
Speaker 1 (Програм 19 10)
který zeptujeme následovat.
14:20
S…
Speaker 1 (Програм 19 10)
Takže máme na pravé strany toho výrazu adresu.
14:24
S…
Speaker 1 (Програм 19 10)
a ta adresa toho A,
14:26
S…
Speaker 1 (Програм 19 10)
jak jsem říkal,
14:27
S…
Speaker 1 (Програм 19 10)
je vlastně ta adresa nejnižší z toho
14:32
S…
Speaker 1 (Програм 19 10)
bloku, takže ten blok toho objektu A jsou tyto čtyři bajty,
14:36
S…
Speaker 1 (Програм 19 10)
nejnižší adresa je tady 001288,
14:40
S…
Speaker 1 (Програм 19 10)
takže to je ta adresa objektu A,
14:42
S…
Speaker 1 (Програм 19 10)
takže ten symbol NA nám
14:46
S…
Speaker 1 (Програм 19 10)
potom v číslení zní tady tuto
14:51
S…
Speaker 1 (Програм 19 10)
adresu, tuto číslenou hodnotu.
14:53
S…
Speaker 1 (Програм 19 10)
A tuto hodnotu uložíme do toho ukazatele
14:58
S…
Speaker 7 (Програм 19 10)
MyPT.
15:00
S…
Speaker 1 (Програм 19 10)
které jsme říkali,
15:00
S…
Speaker 1 (Програм 19 10)
že není nic jiného než nějaká paměťová vůnka nebo
15:05
S…
Speaker 1 (Програм 19 10)
paměťový prostor,
15:07
S…
Speaker 1 (Програм 19 10)
do kterého můžeme ukládat adresy,
15:09
S…
Speaker 1 (Програм 19 10)
takže tam uložíme tady tuto adresu.
15:11
S…
Speaker 1 (Програм 19 10)
Ta adresa se tam zase uloží,
15:13
S…
Speaker 1 (Програм 19 10)
že ten nejméně významný byte bude jako první,
15:16
S…
Speaker 1 (Програм 19 10)
takže ta 88 bude jako první,
15:19
S…
Speaker 1 (Програм 19 10)
pak bude nasledovat ten druhý nejméně významný byte E312,
15:25
S…
Speaker 1 (Програм 19 10)
ten nejvýznamnější byte.
15:29
S…
Speaker 1 (Програм 19 10)
Takže takhle uložíme obsah do objektu
15:33
S…
Speaker 2 (Програм 19 10)
Michael Carrera.
15:34
S…
Speaker 1 (Програм 19 10)
Tento řádek prvně tu operaci,
15:37
S…
Speaker 1 (Програм 19 10)
že vezme tuto adresu,
15:38
S…
Speaker 1 (Програм 19 10)
kde začíná objekt A a uloží ji do obsahu
15:42
S…
Speaker 1 (Програм 19 10)
toho Michael Carrera.
15:44
S…
Speaker 1 (Програм 19 10)
Takže ten obsah je vždycky v těchto buňkách a ty adresy
15:48
S…
Speaker 1 (Програм 19 10)
jsou tady takhle obsané.
15:56
S…
Speaker 1 (Програм 19 10)
Takže to jsme měli získání adresy nějakého objektu,
15:59
S…
Speaker 1 (Програм 19 10)
uložení do ukazatele.
16:00
S…
Speaker 1 (Програм 19 10)
Teď máme ten ukazatel naplněný,
16:03
S…
Speaker 1 (Програм 19 10)
už je tam nějaká smysluplná hodnota.
16:05
S…
Speaker 1 (Програм 19 10)
A jakmile je v ukazateli smysluplná hodnota,
16:08
S…
Speaker 1 (Програм 19 10)
tak můžeme použít tu operaci dereference.
16:11
S…
Speaker 1 (Програм 19 10)
To jsme taky minule mluvili a ta operace dereference udělá
16:15
S…
Speaker 1 (Програм 19 10)
to, že se podívá na tu adresu,
16:18
S…
Speaker 1 (Програм 19 10)
kam ten ukazatel ukazuje.
16:20
S…
Speaker 1 (Програм 19 10)
A na té adrese vezme ten paměťový
16:25
S…
Speaker 1 (Програм 19 10)
obsah.
16:26
S…
Speaker 1 (Програм 19 10)
A my sice máme jenom tu první adresu,
16:30
S…
Speaker 1 (Програм 19 10)
ale protože ten ukazatel je typový,
16:33
S…
Speaker 1 (Програм 19 10)
ten ukazatel ví,
16:34
S…
Speaker 1 (Програм 19 10)
na jaký typ ukazuje.
16:35
S…
Speaker 1 (Програм 19 10)
Tak když má jen tu jednu adresu,
16:39
S…
Speaker 7 (Програм 19 10)
tak ví,
16:39
S…
Speaker 1 (Програм 19 10)
kolik teda těch buňek bude následovat.
16:42
S…
Speaker 1 (Програм 19 10)
Protože když je to typ in,
16:43
S…
Speaker 1 (Програм 19 10)
tak ví,
16:44
S…
Speaker 1 (Програм 19 10)
že budou následovat kromě té jedné adresy další tři buňky,
16:48
S…
Speaker 1 (Програм 19 10)
takže dohromady čtyři.
16:49
S…
Speaker 1 (Програм 19 10)
Kdyby to byl ukazatel na typ double,
16:52
S…
Speaker 1 (Програм 19 10)
tak ví, že kromě té jedné adresy,
16:55
S…
Speaker 1 (Програм 19 10)
kterou má v sobě,
16:56
S…
Speaker 1 (Програм 19 10)
tak ještě bude dalších sedm,
16:57
S…
Speaker 1 (Програм 19 10)
protože double má celkem osm buňky.
17:01
S…
Speaker 1 (Програм 19 10)
Takže to je ta reference a ta potom s tím objektem
17:05
S…
Speaker 1 (Програм 19 10)
pracuje,
17:06
S…
Speaker 1 (Програм 19 10)
jakoby by to bylo ten type in nebo jakoby by to bylo ten
17:10
S…
Speaker 1 (Програм 19 10)
type double, podle toho jak,
17:12
S…
Speaker 1 (Програм 19 10)
na co tady je reference,
17:14
S…
Speaker 1 (Програм 19 10)
na jak ty ty objektů tady je reference ukazuje.
17:18
S…
Speaker 1 (Програм 19 10)
A s tím objektem tak můžeme pracovat jako s
17:22
S…
Speaker 1 (Програм 19 10)
tím číslem celým nebo s tím číslem tablou.
17:26
S…
Speaker 1 (Програм 19 10)
Takže když já tady na lepou stranu napíšu hvězdička
17:30
S…
Speaker 1 (Програм 19 10)
mytoter, tak provedu teda tu dereferenci.
17:33
S…
Speaker 1 (Програм 19 10)
Podívám se,
17:34
S…
Speaker 1 (Програм 19 10)
co je to mytoter,
17:35
S…
Speaker 1 (Програм 19 10)
to mytoter vidím,
17:37
S…
Speaker 1 (Програм 19 10)
že je to adres a na
17:41
S…
Speaker 1 (Програм 19 10)
té adrese se nachází tady ten objekt a
17:46
S…
Speaker 1 (Програм 19 10)
Protože ten objekt Michael Terrell byl definován jako
17:50
S…
Speaker 1 (Програм 19 10)
int hvězdička,
17:52
S…
Speaker 1 (Програм 19 10)
takže ukazotelná ty int.
17:53
S…
Speaker 1 (Програм 19 10)
Takže já vím,
17:54
S…
Speaker 1 (Програм 19 10)
že od této atlesy ještě tři další buňky patří do
17:58
S…
Speaker 1 (Програм 19 10)
toho objektu.
17:59
S…
Speaker 1 (Програм 19 10)
Takže to hvězdička Michael Terrell potom mi představuje obsah
18:03
S…
Speaker 1 (Програм 19 10)
tady těchto čtyřbuně.
18:05
S…
Speaker 1 (Програм 19 10)
A když já do toho Michael Terrell budu zapisovat,
18:08
S…
Speaker 1 (Програм 19 10)
tak jako kdybych zapisoval do těchto čtyřbuně.
18:11
S…
Speaker 1 (Програм 19 10)
Kdybych z toho četl,
18:12
S…
Speaker 1 (Програм 19 10)
s tomu mycoterem,
18:13
S…
Speaker 1 (Програм 19 10)
kdybych to mycoterem byl třeba na té pravé straně,
18:16
S…
Speaker 1 (Програм 19 10)
tak si ho naopak budu číst.
18:18
S…
Speaker 1 (Програм 19 10)
tak když si ho budu číst,
18:19
S…
Speaker 1 (Програм 19 10)
tak budu vyčítat ten obsah právě z těchto čtyřech buněk,
18:23
S…
Speaker 1 (Програм 19 10)
které začínají na této adrese,
18:25
S…
Speaker 1 (Програм 19 10)
která je daná obsahem do toho ukazatele.
18:28
S…
Speaker 1 (Програм 19 10)
Takže takhle funguje ta dereference.
18:31
S…
Speaker 1 (Програм 19 10)
Tím, že já jsem tady dát to hvězdička micropr na levou
18:35
S…
Speaker 1 (Програм 19 10)
stranu, tu dereferenci,
18:37
S…
Speaker 1 (Програм 19 10)
tak říkám,
18:38
S…
Speaker 1 (Програм 19 10)
že do toho v paměťovému nístě,
18:41
S…
Speaker 1 (Програм 19 10)
kam ten ukazatel ukazuje 3009.
18:44
S…
Speaker 1 (Програм 19 10)
A to paměťové místo jsou tady tyto čtyři byte,
18:48
S…
Speaker 1 (Програм 19 10)
já tam zapisuju devítku,
18:50
S…
Speaker 1 (Програм 19 10)
protože vím,
18:52
S…
Speaker 1 (Програм 19 10)
že to paměťové místo je typu int,
18:55
S…
Speaker 1 (Програм 19 10)
takže to pravidlo je takové,
18:56
S…
Speaker 1 (Програм 19 10)
že ten nejméně významný byte se zapíše jako první a ty více
19:00
S…
Speaker 3 (Програм 19 10)
významné budou 0,
19:01
S…
Speaker 1 (Програм 19 10)
takže se zapíše tady jako 0 ,9 do
19:06
S…
Speaker 1 (Програм 19 10)
této paměťové pořití a do těch následujících budeme.
19:10
S…
Speaker 1 (Програм 19 10)
Ona tam měla jako předtím byla,
19:11
S…
Speaker 1 (Програм 19 10)
tak tam zásledně zůstane,
19:13
S…
Speaker 1 (Програм 19 10)
ale věděl tam ty budy,
19:14
S…
Speaker 1 (Програм 19 10)
tak kdyby se předvíče,
19:15
S…
Speaker 1 (Програм 19 10)
nebo kdyby tady měla nějaké větší číslo,
19:18
S…
Speaker 1 (Програм 19 10)
tak se tady ho předvíšel i rovnou odpovídající tomu.
19:21
S…
Speaker 1 (Програм 19 10)
Já tomu nějaký dotaz.
19:26
S…
Speaker 1 (Програм 19 10)
Já to ještě tady ukážu
19:30
S…
Speaker 1 (Програм 19 10)
v tom vývojového prostředí,
19:32
S…
Speaker 1 (Програм 19 10)
takže to, co jsme si tady dělali,
19:36
S…
Speaker 1 (Програм 19 10)
tak já zkusím dát
19:43
S…
Speaker 1 (Програм 19 10)
do toho vývojového prostředí a tam se na to podíváme.
19:47
S…
Speaker 1 (Програм 19 10)
Podíváme se i na to,
19:49
S…
Speaker 1 (Програм 19 10)
jak se teda liší ta typa která je výstvání.
19:52
S…
Speaker 1 (Програм 19 10)
Podíváme se,
19:54
S…
Speaker 1 (Програм 19 10)
jak se liší 32 ,5 -64.
20:00
S…
Speaker 1 (Програм 19 10)
Takže jak vždycky vytvořím nový projekt,
20:03
S…
Speaker 1 (Програм 19 10)
bude to konzolová aplikace,
20:06
S…
Speaker 1 (Програм 19 10)
takže tady vytvořím ten konzoli,
20:11
S…
Speaker 1 (Програм 19 10)
tady vybírám ten CMake a mám
20:15
S…
Speaker 1 (Програм 19 10)
tady plus 06
20:20
S…
Speaker 1 (Програм 19 10)
a počkám teda,
20:24
S…
Speaker 1 (Програм 19 10)
až se mi to vytvoří kompletně ten projekt,
20:28
S…
Speaker 1 (Програм 19 10)
až tam bude generování toho
20:32
S…
Speaker 1 (Програм 19 10)
CMake.
20:33
S…
Speaker 1 (Програм 19 10)
a pak tam ten port.
20:36
S…
Speaker 1 (Програм 19 10)
Musíte dát tady napístat ten
20:41
S…
Speaker 1 (Програм 19 10)
kus,
20:42
S…
Speaker 1 (Програм 19 10)
který mám tady.
20:44
S…
Speaker 1 (Програм 19 10)
Ještě
21:14
S…
Speaker 1 (Програм 19 10)
tam dáme ten přátek unicializaci.
21:26
S…
Speaker 1 (Програм 19 10)
Děláme
21:42
S…
Speaker 1 (Програм 19 10)
teda verzi 60 -32.
21:47
S…
Speaker 1 (Програм 19 10)
Děláme třeba tady tu výbak verzi
21:51
S…
Speaker 1 (Програм 19 10)
a dáme
21:56
S…
Speaker 1 (Програм 19 10)
si tady někde těchto míst při nás.
22:01
S…
Speaker 1 (Програм 19 10)
kde už budeme mít v paměti vytvořené tady tyto tři
22:05
S…
Speaker 1 (Програм 19 10)
objekty.
22:07
S…
Speaker 1 (Програм 19 10)
A když to pustíme,
22:11
S…
Speaker 7 (Програм 19 10)
tak mám
22:16
S…
Speaker 1 (Програм 19 10)
tady v tom debugu tu paměť
22:20
S…
Speaker 1 (Програм 19 10)
memory 1 od minulého týdne.
22:22
S…
Speaker 1 (Програм 19 10)
Kdybych ji tady neměl,
22:24
S…
Speaker 1 (Програм 19 10)
jej takhle zavřu,
22:25
S…
Speaker 1 (Програм 19 10)
tak jak se k ní zase dostanete,
22:27
S…
Speaker 1 (Програм 19 10)
vyjednoduše vyberete tady v tom debug.
22:32
S…
Speaker 1 (Програм 19 10)
Windows a taky někde najdete memory.
22:36
S…
Speaker 1 (Програм 19 10)
Tady můžete mít celkem čtyři pohledy
22:40
S…
Speaker 1 (Програм 19 10)
nezávislé.
22:41
S…
Speaker 1 (Програм 19 10)
V každém si můžete dívat na nějaký jiný písek té paměti,
22:45
S…
Speaker 1 (Програм 19 10)
ale mně stačí jedna.
22:48
S…
Speaker 1 (Програм 19 10)
Ta adresa,
22:49
S…
Speaker 1 (Програм 19 10)
kde tu paměť budu nahlížet,
22:53
S…
Speaker 1 (Програм 19 10)
tak si dám někde kolem toho A,
22:56
S…
Speaker 1 (Програм 19 10)
B nebo tak,
22:58
S…
Speaker 1 (Програм 19 10)
takže když chci adresu,
22:59
S…
Speaker 1 (Програм 19 10)
kde je umístěno toho A,
23:00
S…
Speaker 1 (Програм 19 10)
tak využiju toho symbolu a
23:04
S…
Speaker 1 (Програм 19 10)
napíšu ten symbol NA,
23:07
S…
Speaker 1 (Програм 19 10)
což mi vrací tu adresu toho A.
23:11
S…
Speaker 1 (Програм 19 10)
Takže tady někde je to A,
23:13
S…
Speaker 1 (Програм 19 10)
já ho tady vidím,
23:15
S…
Speaker 1 (Програм 19 10)
takže toto je teda...
23:17
S…
Speaker 1 (Програм 19 10)
Ta bunka s tím Ačkem.
23:18
S…
Speaker 1 (Програм 19 10)
Kolem toho Ačka z jedné strany je tady to CCC,
IA (fifandraisana amin'ny feo) no namorona ity dika mitovin'ny soratra ity. Mety misy tsy fetezana - jereo ny feo voalohany raha mila ampiasaina amin'ny fomba henjana. Politikan'ny AI
Famintinana
Tsindrio ny Famaritana mba hamoronana famintinana AI an'ity dika mitovy ity.
Famintinana...
Manontany ny AI momba ity dika mitovy ity
Manontany zavatra momba ity dika mitovy ity — hahita ny ampahany mifandraika amin'izany ny AI ary hamaly.