C言語関係掲示板

過去ログ

No786 ポインタの使用条件と利点

[戻る] [ホームページ]
No.9787

使用条件、利点をご教授ください
投稿者---大山(2003/10/15 10:39:42)


はじめまして。
現在cの勉強を始めたものです。
ポインタ、構造体の勉強をし、内容をある程度把握できるのですが、
これといった使い道、利点などが分かりません。
この両者について簡単にご説明していただけたら幸いです。
宜しくお願いいたします。

No.9788

Re:使用条件、利点をご教授ください
投稿者---YuO(2003/10/15 13:07:34)


>ポインタ、構造体の勉強をし、内容をある程度把握できるのですが、
>これといった使い道、利点などが分かりません。

ほとんどの場合,ポインタや構造体は代替手段がありません。
ある程度以上の大きさのプログラムを組んでいくと,
使い道や利点は自ずとわかると思います。


構造体に関しては,C MAGAZINEの2003年9月号で特集されていました。
バックナンバーは探せば見つかると思いますし,C MAGAZINEのWebページからも購入できます。
http://www.Cmagazine.jp

なので,ポインタに関して書いておきます。
使い方
  1. 引数の内容を関数側で書き換えて,それを呼び出し側に戻したいとき。
  2. 構造体・関数・配列を関数に引き渡すとき。
  3. malloc等の記憶域管理関数で得たオブジェクトを保持するとき。
  4. アルゴリズム自体に変更が無く,外部の状態によって対応する変数・関数が異なるとき。
  5. 実装に関わる情報を隠蔽したいとき(不完全型へのポインタ)。
  6. 配列を順番にアクセスするとき。
利点
  1. C言語では唯一の方法。
  2. 関数・配列に関しては,C言語では唯一の方法。 構造体の場合,実体を渡すことによる記憶域(一般にはスタック)を無駄に消費せず,コピーによる時間も節約できる。
  3. C言語では唯一の方法。
  4. if文によってアルゴリズムがアルゴリズム自体と無関係なif文に埋もれることが避けられる。
  5. 実装を隠蔽できること自体が大きな利点。
  6. C言語では最近あまり利点はない。C++言語ではtemplateとの絡みで重要。



No.9789

Re:使用条件、利点をご教授ください
投稿者---大山(2003/10/15 14:44:55)


YuO様
ご丁寧な返信に感謝します。
今後ポインタを使用する時がきましたら参考にさせて頂きます。
本当に有難うございました。