- ベストアンサー
授業でプログラミングやってるんですが
構造体を使っているところで、構造体の要素を指定する際に、 ×××->○○○と使うところと、 ×××.○○○というふうに使うところがあります。 この二つの違いはなんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実際の使用例を #include <stdio.h> typedef struct{ int a; }ST; void print_struct(ST* pst) { // pstはポインタなのでメンバへのアクセスは -> を使う printf("pst->a=%d\n", pst->a); } int main(void) { ST st; // 構造体の実体 st.a = 10; // 実体のメンバにアクセスするときは . printf("st.a=%d\n", st.a); print_struct(&st); // 関数に構造体のポインタを渡す return 0; } この例では構造体はint1個だけですが大きな構造体を関数に渡す場合は値渡しだと構造体の複製に無駄があるのでよくポインタ渡しにします。 そのため関数では -> によるアクセスが多くなりますね。
お礼
非常にわかりやすい説明ありがとうございます。 理解することができました!