IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 3. diel - Aritmetika ukazovateľov v C ++

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Tomáš Pařízek:7.1.2017 16:54

Proč jsme se dotéto doby učili psát:
cout << "text";
A teď se tu najednou objevilo printf.
(Funguje to, nemám nic proti ale proč je to čtenáři ukázáno až teď)

 
Odpovedať
7.1.2017 16:54
Avatar
Odpovedá na Tomáš Pařízek
Patrik Valkovič:7.1.2017 18:39

Zřejmě jsem na to zapoměl, když jsem ten článek přepisoval z C. Je to opraveno.

Odpovedať
7.1.2017 18:39
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovedá na Patrik Valkovič
Libor Šimo (libcosenior):7.1.2017 20:04

Myslim, ze by bolo vhodne, keby si mu vysvetlil rozdiel medzi << a printf(). Co ty na to? ;-)

Odpovedať
7.1.2017 20:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):7.1.2017 20:30

Radsej to trochu spresnim.
Medzi

string s = "fajn";
cout << s << endl;

char s[] = "fajn";
printf("%s\n", s):
Odpovedať
7.1.2017 20:30
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá na Libor Šimo (libcosenior)
Tomáš Pařízek:7.1.2017 20:40

Teda nebýt Pythonu tak jsem to nikdy nepochopil. Ale díky.

 
Odpovedať
7.1.2017 20:40
Avatar
Tomáš Rabel:29.10.2018 17:37

Jsem trošku zmatený, ale snad to pochopím :-)

 
Odpovedať
29.10.2018 17:37
Avatar
Odpovedá na Tomáš Rabel
Patrik Valkovič:29.10.2018 19:01

Co ti prosím není jasné?
Jinak rozdíl mezi cout a printf: viz články na textové soubory v C a v C++.

Editované 29.10.2018 19:03
Odpovedať
29.10.2018 19:01
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovedá na Patrik Valkovič
Tomáš Rabel:30.10.2018 15:53

Děkuji, už chápu.

 
Odpovedať
30.10.2018 15:53
Avatar
Jan Michálek:8.1.2019 10:48

Píše se zde"

Pokud bude ale např. jeden ukazatel ukazovat na začátek dynamického pole intů, jako jsme vytvářeli minule, a druhý bude ukazovat např. na pátý prvek tohoto pole, získáme odečtením ukazatelů číslo 4.

Výsledek:

"Prvek, na ktery ukazuje paty_prvek je v poli na indexu 5. "

Nemá náhodou být pátý prvek v poli na indexu 4?

Takže by to mělo být napsané takhle?

int *paty_prvek = pole + 4

Možná se pletu, teprve se učím. Jen bych to chtěl uvést na pravou míru :-)

 
Odpovedať
8.1.2019 10:48
Avatar
Jan Michálek:8.1.2019 11:32

Ještě jsem si všiml maličkosti, která mě ale dost zmátla. V odstavci Pointery a pole píšete.

S paměťovým blokem 100 intů, který jsme výše deklarovali, již dokážeme pracovat pomocí pointerové aritmetiky. Neměl by pro nás být příliš velký problém naplnit pole čísly

A zde jste napsali kod:

int *p_pozice;
for (p_pozice = data; p_pozice < data + 100; p_pozice++)
{
        *p_pozice = 0;
}

Pokud, jsem to pochopil správně tak se odkazujete na výše zadaný kod. Neměl by kod vypadat tedy takhle?

int *p_pozice;
for (p_pozice = pole; p_pozice < pole + 100; p_pozice++)
{
        *p_pozice = 0;
}

Nechci být tzv. "rypálek", ale mne osobně toto zmátlo :-) :-) , ale možná se pletu a autor článku to myslel jinak. O:-)

 
Odpovedať
8.1.2019 11:32
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!