【独学C言語入門㉑】構造体のポインタ

構造体をポインタで参照する方法を今回ご紹介します。構造体も普通の変数と同じように「*」を付けてポインタ変数の宣言を行います。

//構造体テンプレートの宣言
struct data{
    int ht;
    int wt;
};

//構造体のポインタ変数を宣言
staruct data *p;

数値型が1個入っている場合、ポインタ変数pのアドレスにあるデータを参照するときは*pとする必要がありましたが構造体の場合は「アロー演算子」を使用します。

ポインタ名 -> メンバー

p -> wt

//ポインタ変数pのメンバーである
//wtの値を参照する

実際に使用して動作を見てみます。

#include <stdio.h>

//構造体テンプレートの宣言
struct man{
   int ht;
   int wt;
};

main()
{
   struct man taro = {170,60};
   struct man *p;

   p = &taro;

   p -> wt = 55; //wtを変更

   printf("%d\n", p -> ht);
   printf("%d\n", p -> wt);
}

//右が切れたら左にスワイプしてください

「*」かアロー演算子を使用するかの違いはありますが、構造体のポインタも通常の変数の場合と考え方は同じです。ポインタの概念を理解するとC言語の理解が一気に深まりますので、ちょっと自信がない方はゆっくりと理解してもらえればと思います。

独学C言語入門一覧に戻る