DAVID J. MALAN: Lad os skrive et program der beder brugeren om en streng og derefter gå videre til at udskrive denne streng tegn for tegn én per linje. Nu i fortiden, ville vi have gjort det sandsynligvis med firkantet beslag notation, effektiv behandling af en streng er en vifte af tegn. Men denne gang, så lad os i stedet behandle en snor for hvad det egentlig er, er en pointer eller en adresse. Konkret adressen på en karakter, virkelig adresse første karakter i en sekvens af tegn, som vi kollektivt kender som en streng. Lad os først erklære en snor til hvad det egentlig er, char *. Og vi vil kalde det er. Og derefter tildele det afkast værdien af ​​get streng. Lad os næste gøre nogle fejlkontrol. Hvis s er nul, så lad os straks tilbage så at vi ikke ved et uheld dereference at null-pointer. Næste, lad os gentage over den tegn i s som følger. For int, jeg får 0. n er lig med strengen længde s. Gør dette, så længe jeg er mindre end n. Og på hver iteration, tilvækst jeg. Og hvad vil vi gøre på hver iteration? Lad os nu printe ud i hver iteration et enkelt tegn efterfulgt af en ny linje. Nå, hvad karakter gør vi ønsker at udskrive? Jeg foreslår, at vi går til den adresse der er lig med summen af ​​s plus jeg. Nu, hvorfor dette udtryk? Nå, minde om, at lagret i s er adressen på det første tegn i vores streng, s. I mellemtiden er jeg de øges på hver iteration, så den starter ved 0, derefter går til 1, derefter går til 2.. Så med andre ord, s plus jeg effektivt repræsenterer adressen det i'te tegn i sek. Så hvis vi går til denne adresse ved hjælp af den * operatør, vi vil gå til i'te tegn i strengen. Og det er den værdi, der vil være i stedet for vores pladsholder, procent C. Lad os bekræfte så meget. Lad os gemme, kompilere, og køre dette program. Foretag pegepinde, dot slash pointers. Og nu vil jeg give det en streng som hej. Enter. Og ja, jeg ser H-E-L-L-O, med hver char på sin egen linje.