>> David J. MALAN: Să scrie un program care solicită utilizatorului pentru un șir și
apoi continua pentru a imprima ca șir caracter pentru caracter câte unul pe linie.
Acum, în trecut, ne-ar fi făcut atât de probabil cu notație paranteză,
tratarea în mod eficient un șir este o serie de caractere.
>> Dar de data aceasta, să trateze în loc un șir de ceea ce este de fapt, un
pointer sau o adresă.
Mai exact, adresa unei caracter, într-adevăr adresa
primul caracter, într-o secvență de caractere pe care le cunoaștem în mod colectiv
ca un șir.
>> Să declare în primul rând un șir de ceea ce este de fapt, char *.
Și vom numi aceasta e.
Și apoi atribuie revenirea Valoarea de string GET.
>> Să următor face unele verificarea erorilor.
În cazul în care s este nul, să se întoarcă imediat astfel încât să nu accidental
dereference care pointer nul.
>> Următor, să repeta de-a lungul caracterele din s, după cum urmează.
Pentru Int, i devine 0.
n este egal cu lungimea șirului de s..
Face acest lucru atât timp cât i este mai mic decât n.
Și pe fiecare iterație, incrementa i.
>> Și ceea ce vrem să face pe fiecare iteratie?
Hai acum imprima pe fiecare iterație un singur caracter
urmată de o nouă linie.
Ei bine, ce personaj face ne-o dorim pentru a imprima?
Propun să mergem la adresa care este egală cu suma s plus i.
>> Acum, de ce expresie?
Ei bine, amintim că stocate în S este adresa primului caracter
în șir nostru, e.
Între timp, i este incrementat pe fiecare iterație, astfel încât acesta începe la 0,
apoi se duce la 1, apoi se duce la 2.
>> Deci, cu alte cuvinte, s plus i eficient reprezintă adresa
caracterul i-lea în s..
Deci, dacă mergem la acea adresă prin operatorul *, vom merge la
i-lea caracter din șirul.
Și care este valoarea care va fi înlocuit de substituent nostru,
la sută C.
>> Să confirma cât de mult.
Să salvăm, compila, și rula acest program.
Face indicii, indicii slash punct.
Și acum voi da o șir ca salut.
Enter.
>> Și într-adevăr, văd H-E-L-L-O, cu fiecare caracter pe o linie proprie.