>> C言語入門トップに戻る

構造体のポインタについて

前回は構造体の配列までやりましたが、
今回は構造体のポインタについて説明します。
ちょっと難しいですが、頑張って下さい。
次のコードを見てください。

#include <stdio.h>

int main(void){
	
	struct TEST{
		int figure;
		short value;
		char letter;
	};

	TEST test;
	TEST *testp;
	//ポインタtestpにtestのアドレスを代入。
	testp=&test;

	//アロー演算子でアクセスし代入。
	testp->figure=100;
	testp->value=10;
	testp->letter='A';

	printf("%d\n",testp->figure);
	printf("%d\n",testp->value);
	printf("%c\n",testp->letter);

	return 0;
}



ポインタにアドレスを代入するところまでは同じですよね?
ですが、その後の値を代入する部分を見てください
testpの後に見たことない記号があります。
これはアロー演算子と言って、構造体のポインタからメンバにアクセスするときに使う演算子です。
書き方は

構造体のポインタ->メンバ名

です。
testpには今、testのアドレスが入っています。
アドレスではなくて構造体自体であれば、testp.figureとアクセスできるのですが、
今回はポインタです。
ポインタから構造体の各メンバにアクセスするにはこのアロー演算子を使ってアクセスする必要があるのです。
後は同じように代入するだけです。
当然表示するときも、上記のようにアロー演算子でアクセスして表示します。

以上で、構造体のポインタに関する説明は終わりです。
そんなに難しくないですよね?
次回は足し算掛け算などの演算子について説明します。


>> 【演算子について】に進む
>> C言語入門トップに戻る