1 自己参照的構造体

   1.2 メンバの値の参照
 例えば、先ほど定義した変数 "pd_a" の各メンバの値をポインタ変数 "pd_p" を介して参照すると次のようになります。
#include <stdio.h>

typedef struct {
  char name[10];       /* 名前 */
  char address[20];    /* 住所 */
  double phone;        /* 電話番号 */
}personal_t;             /* アドレスデータ型の定義 */

int main(void){
/*** アドレスデータの構造体の変数とポインタ変数の定義 ***/
  personal_t pd_a = {"A-san", "F-city", 9876543210},
      *pd_p;

  pd_p = &pd_a;  /* pd_a の先頭のアドレスをポインタ変数に代入 */

   /*** 各メンバ値の表示 ***/
  printf("名前: %s", pd_p->name);
  printf("住所: %s", pd_p->address);
  printf("電話番号: %.0f", pd_p->phone);
}
メンバの値の参照のイメージ

 サンプルのプログラムにあるように、構造体へのポインタ変数を定義した場合次のようにして値を参照できます。

 ポインタ変数名->メンバの変数