DAVID J. Malan: Laten we een programma schrijven dat vraagt ​​de gebruiker voor een string en ga dan naar die string afdrukken karakter voor karakter een per regel. Nu in het verleden, we zouden hebben gedaan waarschijnlijk met vierkante haakjesnotering, effectief behandelen van een string is een array van karakters. Maar deze keer, laten we in plaats daarvan behandelen een string voor wat het werkelijk is, een aanwijzer of een adres. Specifiek, het adres van een karakter, echt het adres van de eerste teken in een reeks personages die we collectief weten als een string. Laten we eerst verklaren een string voor wat het werkelijk is, char *. En we noemen het is. En dan toe te wijzen de terugkeer waarde van get string. Laten we het volgende doen wat foutcontrole. Als s null is, laten we onmiddellijk terug zodat we niet per ongeluk dereferentie dat null pointer. Vervolgens laten we itereren over de tekens in s als volgt. Voor int, i krijgt 0. n gelijk is aan de lengte van de string van s. Doe dit zolang i kleiner dan n. En op elke iteratie i verhogen. En wat willen we doen op elke iteratie? Laten we nu printen op elke iteratie een enkel karakter gevolgd door een nieuwe regel. Nou, wat karakter doen we willen drukken? Ik stel voor dat we naar het adres dat gelijk is aan de som van s plus i. Nu, waarom die uitdrukking? Nou, herinneren dat opgeslagen in s is de adres van het eerste teken onze koord, s. Ondertussen wordt i wordt geïncrementeerd op elke iteratie zodat het begint bij 0, gaat dan naar 1 gaat dan naar 2. Dus met andere woorden, s plus i effectief vertegenwoordigt het adres het i-de karakter in s. Dus als we naar dat adres door middel van de * operator, we gaan naar de i-teken in de reeks. En dat is de waarde die zal worden gewisseld voor onze placeholder, procent C. Laten we bevestigen zo veel. Laten we het redden, compileren, en Dit programma starten. Maak pointers, dot slash pointers. En nu zal ik het eens te string als hallo. Enter. En inderdaad, ik zie H-E-L-L-O, met elke char op een afzonderlijke regel.