初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます.

C言語 いつも使うたびに調べてること一覧まとめ

いつもこれなんだっけ、あれなんだっけ?となっている事を
自分用メモでまとめておきます。

  • 構造体をあれこれする
  • 構造体変数を引数として受け取る関数の作成
  • 構造体型へのポインタ型の引数を持つ関数

構造体をあれこれする

構造体の型を【構造体タグ】・構造体タグで宣言された変数を【構造体変数】と呼びます。

構造体の型宣言
struct cat {
  char name[64];
  int age;
  char eyeColor[64];
  char hairColor[64];
  double height;
  double weight;
};
構造体の型の変数を宣言
int main(void)
{
	struct cat bell;
	return 0;
}
構造体の要素へのアクセス方法
struct cat {
  char name[64];
  int age;
  char eyeColor[64];
  char hairColor[64];
  double height;
  double weight;
};

int main(void)
{
  struct cat bell;
  bell.age = 10;
  printf("%d\n", bell.age); // 10才
  strcpy(bell.name,"ベル");
  printf("%s\n",bell.name );//出力 ベル
  return 0;
}
構造体タグを新しい型として1度に宣言
typedef struct {
  char name[64];
  int age;
  char eyeColor[64];
  char hairColor[64];
  double height;
  double weight;
}cat;
cat bell;

構造体変数を引数として受け取る関数の作成

構造体変数を宣言したら関数の呼び出し時に引数として
渡すことができます。

#include <stdio.h>
#include <string.h>


typedef struct {
  char name[64];
  int age;
  char eyeColor[64];
  char hairColor[64];
  double height;
  double weight;
}cat;

void catPrint(cat);

int main(void) {
  cat bell;
  strcpy(bell.name, "ベル");
  bell.age = 12;
  strcpy(bell.eyeColor, "緑色");
  strcpy(bell.hairColor, "茶色");
  bell.height = 30;
  bell.weight = 6.2;
  catPrint(bell);

  return 0;
}

void catPrint(cat obj) {
  printf("名前:%s\n", obj.name);
  printf("年齢:%d\n",obj.age);
  printf("目の色:%s\n",obj.eyeColor);
  printf("毛の色:%s\n",obj.hairColor);
  printf("身長:%4.0fcm\n",obj.height);
  printf("体重:%4.1fkg\n",obj.weight);
  return;
}
// 名前:ベル
// 年齢:12
// 目の色:緑色
// 毛の色:茶色
// 身長:  30cm
// 体重: 6.2kg

構造体型へのポインタ型の引数を持つ関数

#include <stdio.h>
#include <string.h>


typedef struct {
  char name[64];
  int age;
  char eyeColor[64];
  char hairColor[64];
  double height;
  double weight;
}cat;

void catPrint(cat *);

int main(void) {
  cat bell;
  strcpy(bell.name, "ベル");
  bell.age = 12;
  strcpy(bell.eyeColor, "緑色");
  strcpy(bell.hairColor, "茶色");
  bell.height = 30;
  bell.weight = 6.2;
  catPrint(&bell);

  return 0;
}

void catPrint(cat *obj) {
  printf("名前:%s\n", obj->name);
  printf("年齢:%d\n",obj->age);
  printf("目の色:%s\n",obj->eyeColor);
  printf("毛の色:%s\n",obj->hairColor);
  printf("身長:%4.0fcm\n",obj->height);
  printf("体重:%4.1fkg\n",obj->weight);

  return;
}