>> DAVID J. MALAN: Lassen Sie uns ein Programm schreiben daß fragt den Benutzer nach einer Zeichenfolge und
fahren Sie dann diese Zeichenfolge zu drucken Zeichen für Zeichen pro Zeile.
Jetzt in der Vergangenheit, würden wir getan haben wahrscheinlich mit eckigen Klammer-Notation,
effektive Behandlung einen String ein Array von Zeichen.
>> Aber dieses Mal, lassen Sie uns stattdessen behandeln ein String, was es wirklich heißt, ein
Zeiger oder eine Adresse.
Genauer gesagt, die Adresse einer Charakter, wirklich die Adresse des
erste Zeichen in einer Sequenz von Zeichen, die wir gemeinsam kennen
als String.
>> Lassen Sie uns zunächst einen String erklären für was es wirklich ist, char *.
Und wir nennen es ist.
Und dann weisen Sie die Rückkehr Wert von get-String.
>> Lassen Sie uns als nächstes tun einige Fehlerprüfung.
Wenn s ist null, lassen Sie sofort zurück so, dass wir nicht versehentlich
dereferenzieren, die NULL-Zeiger.
>> Als nächstes wollen wir über die laufen Zeichen s wie folgt.
Für int bekommt i 0.
n gleich der String-Länge von s.
Tun Sie dies so lange, wie ich weniger als n ist.
Und bei jeder Iteration, erhöhe ich.
>> Und was wollen wir tun bei jeder Iteration?
Lassen Sie uns jetzt ausdrucken bei jeder Iteration ein einzelnes Zeichen
gefolgt von einer neuen Zeile.
Nun, was Charakter zu tun wir wollen zu drucken?
Ich schlage vor, wir gehen an die Adresse dass gleich der Summe der s plus i.
>> Nun, warum dieser Ausdruck?
Nun, daran erinnern, dass in s gespeichert ist Adresse des ersten Zeichens
in unserem String, s.
Währenddessen wird auf i erhöht jede Iteration, so daß er bei 0 beginnt,
dann geht auf 1, geht dann zu 2.
>> Also mit anderen Worten, s plus i effektiv repräsentiert die Adresse
das i-te Zeichen in s.
Also, wenn wir gehen an diese Adresse durch der *-Operator, werden wir die los werden
i-te Zeichen in der Zeichenfolge.
Und das ist der Wert, den sein wird für unsere Platzhalter ersetzt,
C. Prozent
>> Lassen Sie uns bestätigen, wie viel.
Retten wir, kompilieren und führen Sie dieses Programm.
Machen Zeiger, Punkt Strich Zeiger.
Und jetzt werde ich es geben, ein String wie hallo.
Sie Enter.
>> Und in der Tat, ich sehe, H-E-L-L-O, mit jeder char auf seine eigene Linie.