#include<stdio.h>
typedef struct{
char *name;
int lv;
}kozo;
main(){
kozo a,*p;
a.name="yxa";
a.lv=99;
p=&a;
p->name="pygboku";
p->lv=1;
printf("Name:%s\nLV :%d\n",a.name,a.lv);
}
で実行結果は、
Name:pygboku
LV :1
p=&a;は、ご想像通り(?)「kozo構造体へのポインタpは、kozo構造体aのアドレスを指し示す」という意味です。
p->name="pygboku";
p->lv=1;
ここで、->演算子が用いられています。
(*p).name="pygboku";
(*p).lv=1;
といった具合に、ちょっとわかり辛くなってしまいます。まぁ、それが理由で、->演算子が用意されたみたいなんですけどね。
つづく。