usaoさん
ご回答ありがとうございます。
内容があやふやな質問をしてしまい、申し訳ございません。
ポインタを使うことを考えたのは、制作中のゲームの動作速度が遅くて困っていたことが理由なので
ポインタを使うメリットについても「処理を高速化できる」というイメージしかないまま質問していました。
(ポインタはデータを格納しているアドレスを示すだけなので、データ自体を扱うより高速、というような簡単な理解しかできていません)
ゲームでは、画面上に表示させるキャラクターを構造体(座標、画像情報、ステータス等のメンバ変数を持つ)で定義しています。
一度に表示させるキャラクターの数が少ない場合は問題ないですが、1000体のように大量に表示させる場合は、処理落ちが発生してしまいます。
そこで、構造体の配列をstd::vectorからポインタを使うように作り直して、上記と同じ条件で大量のキャラクターを表示させたところ、処理落ちが発生せず、CPU使用率も半分以下になり、ポインタの方が速いという実感を感じたので、ポインタを使いたいという気持ちが湧きました。
ポインタの文法について調べて、ポインタを使った場合の構造体配列のメンバ変数の参照は
(ポインタ名 + 要素番号)->メンバ変数名
のように書くところまでは理解しました。
ただ、これまでstd::vectorを使用してきたため、既に制作した処理では構造体配列のメンバ変数の参照を
配列名[要素番号].メンバ変数名
というstd::vectorの書き方で進めてきました。
しかし、既に制作した処理の、構造体配列の宣言の部分とメモリの動的確保の部分だけを
std::vectorからポインタの書き方に変えて、メンバ変数へのアクセスの書き方はstd::vectorの書き方のままでも
今までと変わりなくゲームが問題なく動作しました。
上記のソースの例だと、「testp[1].a」と「(testp + 1)->a」は同じ値が返りました。
そのため、この2つの書き方は同じ意味なのか、それとも偶然同じ値が返っただけなのか、という疑問が出てきました。
2つの書き方の違いについて調べているのですが、違いが明確に記述されている情報が見つかりません。
以下のページでは、ポインタ変数で配列要素へアクセスする書き方について
「data[5]」と「*(data + 5)」は全く同じ意味という記述があるのですが、
構造体のメンバ変数へのアクセスについても同じことが言えるのでしょうか?
http://9cguide.appspot.com/15-07.html