DAVID J·マラン:それでは、プログラムを書いてみましょう つまり、文字列の入力をユーザーに要求し、 その文字列を印刷するために進んでください 行ごとに文字のいずれかの文字。 今、過去に、我々はそうしただろう おそらく角括弧表記で、 効果的に文字列を処理する 文字の配列です。 今回は、のではなく、治療しましょう それは本当に、aは何のための文字列 ポインタまたはアドレス。 具体的には、アドレス 文字、本当にアドレス のシーケンスの最初の文字、 我々は総称して知っている文字 文字列として。 まずは文字列を宣言してみましょう それが本当に何なのか、CHAR *。 そして、我々は、S、それを呼ぶことにします。 してからリターン割り当てる GET文字列の値。 それでは、次のいくつかのエラーチェックをやってみましょう。 sがnullの場合、のはすぐに戻りましょう 我々はしない誤っないように そのNULLポインタデリファレンス。 次は、を反復しましょう s内の文字次の通りである。 int型のために、私は0を取得します。 nはSの文字列の長さに等しい。 限り、私はnよりも小さい限り、これを行う。 そして各反復では、私をインクリメント。 そして、我々はために何をしたいですか 各反復で行う? それでは、各繰り返しでプリントアウトしてみましょう 単一文字 新しい行が続く。 さて、どのような文字を行う 私たちは、印刷したい? 私たちは、アドレスに行くことを提案する それは、sの合計に等しいプラス私。 今、なぜその式? さて、Sに格納されているリコールはある 最初の文字のアドレス 私たちの文字列では、s。 一方、私は上のインクリメントされている 各反復では0で始まるように、 それから1になると、2に行く。 換言すれば、Sプラス私で効果的に のアドレスを表し s内のi番目の文字。 だから我々は、を介して、そのアドレスにアクセスした場合 *演算子は、我々に行くことがあります 文字列のi番目の文字。 そして、それはなり、値の 私たちのプレースホルダの代わりに、 パーセントで それでは同じくらい確認しましょう​​。 コンパイルの保存しましょう​​、と このプログラムを実行する。 ポインタ、ドットスラッシュポインタを作る。 そして今、私はそれをあげる こんにちはのような文字列。 入力してください。 実際、私がして、H-E-L-L-Oを参照してください。 独自の行の各文字。