-PR-
解決
済み

ポインターの使用法や利点

  • 暇なときにでも
  • 質問No.98389
  • 閲覧数1931
  • ありがとう数8
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 23% (103/439)

C言語でのポインターの使い所、どんな時に使うのか、どんな時に役立つのかを教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル5

ベストアンサー率 80% (4/5)

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


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

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

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

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

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 41% (324/772)

ポインタは、ないと大変困ります。 文字列操作、配列操作の際に実行時に動的に必要な 分だけメモリを確保するため、メモリの使用量は 少なくてすむ場合があります。 デメリットとしては、動的に確保したメモリは 必ず開放する必要があります。
ポインタは、ないと大変困ります。

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

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


  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

配列しかないと、一直線のデータしか表現できません。 ポインタがあると、トーナメント表のようなツリー状のデータ表現や 輪っかのように循環したデータ表現をプログラムで扱えます。 そのようなデータを無理矢理配列に当てはめてもプログラムは作れる でしょうが、人が考える時の表現をなるべくそのまま扱う方がプログラム は作り易いですし、間違いが入る余地は少なくなります。
配列しかないと、一直線のデータしか表現できません。

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

そのようなデータを無理矢理配列に当てはめてもプログラムは作れる
でしょうが、人が考える時の表現をなるべくそのまま扱う方がプログラム
は作り易いですし、間違いが入る余地は少なくなります。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ