ここから本文です

C言語の演算子で->というものがあるのですがこれはどういった意味ですか?

rad********さん

2010/9/1312:06:12

C言語の演算子で->というものがあるのですがこれはどういった意味ですか?

閲覧数:
34,965
回答数:
3

違反報告

ベストアンサーに選ばれた回答

zwi********さん

2010/9/1312:39:00

構造体ポインタのメンバ参照のための演算子です。
http://www9.plala.or.jp/sgwr-t/c/sec15-3.html

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

nao********さん

編集あり2010/9/1808:54:42

「アロー演算子」というC言語のために使われるものです
たとえば
typedef struct Pos {
int x, y;
}POS;
という構造体があったとします。

void move(POS* p)
{
p->x = 10;
p->y = 20;
}
という感じです。

例ではPOS構造体のXに10,Yに20を代入しています。

zeo********さん

2010/9/1314:17:03

C言語においては、->は構造体のポインタを利用した参照に利用します。
ただし、C++においてはクラスメンバに関しても使用されます。
たとえば、構造体の場合。
struct Test{
int a;
int b
}
と構造体が宣言されていたときに
Test *test;
test->aで構造体の面罵にアクセスできるようになります。
これは、初心者プログラマーにおいては、構造体をポインタにする必要性は無いので、.演算子を使い、構造体の宣言のアスタリスクを抜けば、ポインタにならないために、.で利用できるものです。

一応、構造体をポインタで利用する際の利点をお話しておきますと
ポインタ型であれば、構造体の要素数が多いときに、関数に値渡しする際、値私に確保されるメモリ容量が低く済むことになります。

どちらにせよ、これを意識して関数やクラスなどを宣言するのは、まだまだだと思います。
とりあえずは、Win32 API などで、ポインタ型しか受け入れない場合にのみ利用することになります。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる