C++のポインタの復習

C++のポインタの復習

1.ランクデータ構造

  • 1つのノードに別のノードのアドレスを記録することでノード間の線分を表現できる。
  • リンクリスト、ツリー、グラフなどのデータ構造で使う。

2.データ構造の動的割り当て

  • 必要な要素の数を実行時に判断し、そのサイズに基づいてベクトル形式のデータ構造を動的に割当てることができる。
  • ポインタは、この種のデータ構造で開始アドレスを記録するために使われる。
  • 関数間のデータの受け渡しやリンクデータ構造の構成要素も、構造体のメモリアドレスを記録するために使われる。

3. 参照呼び出し

  • 関数から引数に結果を返したいとき
  • 大きな要素を受け渡すことを逃げたいとき

4.データの要素へのアクセス

 インデックス     ポインタ
 int i;
 T *p;
 i = 0;
 p = a;  (p = &a[0]; )
 a[i]*p
 a[i].f   p->f
i == N
p == &a[N] (p == a + N)

5. 配列による引数と戻り値

  • 「3。参照呼び出し」と間違いやすい。「3.」には、引数の値が変わらないが、「5.」には、引数が変わる。

6.関数のポインタ

  • 関数の処理をパラメータ化するために別の関数を引数として使うことができる。

7.ポインタによる別名参照

  • 効率の問題
  • 静的に初期化されたデータの参照
Comments