ポインタがなぜ必要かをまとめてみましょう。
- 動的なデータ構造を導入することができる
プログラム中で malloc 関数等を用いることにより、 プログラム実行中に必要に応じてメモリ領域を動的に確保することができます。 これにより、メモリ空間の有効利用ができます。
特に、次章以降で扱う構造体を用いると更に複雑なデータ構造を効率良く 表現することができるようになります。
- 値呼び出し(call by value)による 参照呼び出し(call by referece)の実現
関数引数でアドレス値を渡すことにより、関数内で、そのアドレスの指す データの内容を直接操作できるようになります。 また、配列などの連続したメモリ領域の先頭アドレスを渡すだけで、 その配列内のデータ全てを参照、操作可能になります。