>> DAVID J. Malan: Pojďme napsat program, které vyzve uživatele k zadání řetězce a
pak pokračovat vytisknout tento řetězec znak pro znak na každém řádku jeden.
Nyní v minulosti, by jsme to udělali tak, Pravděpodobně se čtvercovým držákem notaci,
efektivní léčbu řetězec je pole znaků.
>> Ale tentokrát, pojďme místo léčbě řetězec na to, co skutečně je,
ukazatel nebo adresu.
Konkrétně, adresa charakter, opravdu adresa
první znak, v pořadí znaky, které jsme společně známe
jako řetězec.
>> Pojďme nejprve deklarovat řetězec pro co to vlastně je, char *.
A budeme říkat to je.
A pak mu přiřadit návrat hodnota get řetězce.
>> Pojďme si udělat nějaké další kontrolu chyb.
Pokud je null, pojďme se okamžitě vrátí tak, že my ne náhodou
dereference, že nulový ukazatel.
>> Další, pojďme iteraci znaky s takto.
Pro int, i dostane 0.
n se rovná délka řetězce s.
Udělej to tak dlouho, dokud i je menší než n..
A v každé iteraci, zvýšit i.
>> A to, co chceme dělat na každé iteraci?
Pojďme se nyní tisknout na každé iteraci jeden znak
následuje nový řádek.
No, co postava dělat chceme tisknout?
Navrhuji, že jdeme na adresu která se rovná součtu s a i.
>> A teď, proč tento výraz?
No, připomenout, že uložené v s je adresa prvního znaku
v našem řetězci, s.
Mezitím jsem se zvýší na každé iterace tak, že začíná v 0,
pak jde do 1, pak jde do 2.
>> Takže jinými slovy, s navíc i efektivně představuje adresu
i-tý znak v s..
Takže pokud půjdeme na uvedenou adresu formou operátor *, půjdeme na
i-tý znak v řetězci.
A to je hodnota, která bude nahradit pro náš zástupný symbol,
procent C.
>> Pojďme potvrzení tolik.
Pojďme zachránit, sestavit, a spustit tento program.
Zkontrolujte ukazatele, tečka ukazatele lomítko.
A teď jsem si to dát string jako ahoj.
Enter.
>> A vskutku, vidím, H-E-L-L-O, s každý char na vlastním řádku.