C言語でのポインターの使い所、どんな時に使うのか、どんな時に役立つのかを教えてください。

A 回答 (3件)

関数で変数を使いますよね。

その変数は関数の持ち物です。
だから、その関数から別の関数にその変数を渡したい時に、その変数自体は渡せません。 自分の物ですから。
仕方が無いので変数のコピーを渡します。 渡した変数は、渡された関数の持ち物です。


変数が荷物だとすると、いちいち荷物の中身を複製して、新しい入れ物を用意して、その入れ物を関数に渡します。
ちょっと面倒ですよね。

ポインタの場合、荷物の中身を複製せずに、ここにあるよという荷札みたいな物だけを渡します。
らくちんですよね。

いろんなことをする時に、荷札だけをやり取りすると楽な場合があります。
メモリ割り当て関数も、どこかに荷物を作って、その荷札だけを渡してくれます。
荷札は簡単に複製できるので、危険はありますが、やり取りが簡単なんです。

簡単にやり取りができないと合理的に使えないアルゴリズムが一杯あります。
それらを使うときにポインタが便利なんです。
    • good
    • 0

配列しかないと、一直線のデータしか表現できません。



ポインタがあると、トーナメント表のようなツリー状のデータ表現や
輪っかのように循環したデータ表現をプログラムで扱えます。

そのようなデータを無理矢理配列に当てはめてもプログラムは作れる
でしょうが、人が考える時の表現をなるべくそのまま扱う方がプログラム
は作り易いですし、間違いが入る余地は少なくなります。
    • good
    • 0

ポインタは、ないと大変困ります。



文字列操作、配列操作の際に実行時に動的に必要な
分だけメモリを確保するため、メモリの使用量は
少なくてすむ場合があります。

デメリットとしては、動的に確保したメモリは
必ず開放する必要があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング