6.5 KiB
6.5 KiB
title | author | date | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|
『新版C言語プログラミングレッスン 入門編』第10章・構造体 | kazu634 | 2008-05-01 |
|
|
構造体とは?
複数の異なる型の変数を一つにまとめたもの
たとえば、学校の成績処理を考えるとしましょう。ある学生を処理しようとしたとき、その学生は「複数の異なる型」のデータを持っています。つまり
- 出席番号
- 氏名
- 国語の点数
- 数学の点数
- 英語の点数
などです。このとき、氏名は文字の配列、出席番号や点数は整数…、と別々の変数にして取り扱ってもかまいません。しかし、出席番号・氏名・点数はある一人の学生のデータなどですから、できれば一つにまとめて扱いたいものです。「構造体」はそんなときに使うのです。
使い方の例
#include <stdio.h> #include <string.h> /* プロトタイプ宣言 */ struct student { int id; char name[20]; int japanese; int math; int english; }; int main(void); void prt_student(struct student s); /* 関数 main */ int main(void) { struct student taro; struct student jiro; taro.id = 10; strcpy(&taro.name[], "Yamada"); taro.japanese = 100; taro.math = 85; taro.english = 60; jiro = taro; jiro.id = 11; strcpy(&jiro.name[], "Jiro"); jiro.japanese = 99; prt_student(taro); prt_student(jiro); return(); } /* 関数 prt_student */ void prt_student(struct student s) { printf ("ID: %d\n", s.id); printf ("Name: %s\n", &s.name[]); printf ("Japanese: %d\n", s.japanese); printf ("Math: %d\n", s.math); printf ("English: %d\n", s.english); printf ("Total: %d\n", s.japanese + s.math + s.english); printf ("\n"); }