David J. MALAN: Kom ons skryf 'n program wat vra die gebruiker vir 'n string en gaan dan dat die snaar te druk karakter vir karakter een per lyn. Nou in die verlede, sou ons gedoen het waarskynlik met vierkantige hakienotasie, effektief behandeling van 'n string is 'n verskeidenheid van die karakters. Maar hierdie keer, laat se plaas behandel 'n string vir wat dit werklik is, 'n wyser of 'n adres. Spesifiek, die adres van 'n karakter, regtig die adres van die eerste karakter in 'n reeks van karakters wat ons gesamentlik weet as 'n string. Kom ons kyk eers verklaar 'n string vir wat dit werklik is, char *. En ons sal dit noem is. En dan wys dit die terugkeer waarde van get string. Kom ons volgende doen sommige foutopsporing. As s is van nul, laat ons dadelik terug sodat ons nie per ongeluk dereference dat null pointer. Volgende, laat ons Itereer oor die karakters in s soos volg. Vir int, ek kry 0. n is gelyk aan die string lengte van s. Doen dit so lank as wat ek is minder as n. En op elke iterasie, inkrementeer i. En wat wil ons doen op elke iterasie? Kom ons nou druk op elke iterasie 'n enkele karakter gevolg deur 'n nuwe reël. Wel, wat karakter doen ons wil druk? Ek stel voor dat ons gaan na die adres gelyk aan die som van s plus i. Nou, hoekom daardie uitdrukking? Wel, onthou dat gestoor in s is die adres van die eerste karakter in ons string, is. Intussen is ek wat aangevul op elke iterasie sodat dit begin by 0, gaan dan 1, gaan dan na 2. So met ander woorde, s plus i effektief verteenwoordig die adres van die i-de karakter in s. So as ons na daardie adres by wyse van die * operateur, sal ons gaan na die i-de karakter in die string. En dit is die waarde wat sal vervang vir ons bevat, persent C. Kom ons bevestig soveel. Kom ons spaar, saamstel, en hierdie program. Maak wysers, dot streep wysers. En nou, ek sal dit gee 'n string soos Hello. Betree. En inderdaad, ek sien H-E-L-L-O, met elke kar op sy eie lyn.