アドレス演算子で構造体変数のメモリアドレスを参照し、それをポインタに代入することでポインタで構造体変数を操作できるようになります。
例えば、あるプログラミング言語では、以下のソースコードで構造体変数sをポインタtで操作できるようになります。
struct test{
int a;
int b;
char c[5];
};
struct test s;
struct test *t = &s;
このとき、(*t).aや(*t).b、(*t).c[0]などで構造体変数sのメンバ変数を参照できます。
また、以下のようにすると、構造体変数sのメンバ変数の値を書き換えられます。
(*t).a = 1;
(*t).b = 2;
(*t).c[0] = 3;
(*t).c[1] = 4;
(*t).c[2] = 5;
なお、上記の(*t).aは、t->aと表記することも可能です。
構造体変数sのメンバ変数の値の書き換えも以下のように表記することが可能です。一般的には、こちらの表記法が利用されます。
t->a = 1;
t->b = 2;
t->c[0] = 3;
t->c[1] = 4;
t->c[2] = 5;