C言語 -- 構造
コンセプトとステートメント
概念:
構造体はメンバー変数と呼ばれる値の集合です。構造体の各メンバーは、他の種類変数
== 注: == 配列は同じ型のコレクションのセットです
ステートメント
学生の例を挙げてください
最初をお勧めします
- 最初
struct Student
{
char name[20];
char id[12];
char sex[3];
int high;
};
- 二番目
struct Student
{
char name[20];
char id[12];
char sex[3];
int high;
}x1,x2;
このうち、x1 と x2 は Student 構造に従って作成された 2 つの変数です
。グローバル構造変数
作成:
構造体のメンバーはスカラー、配列、その他の構造体にすることができます。
struct Student
{
char name[20];
char id[12];
char sex[3];
int high;
};
struct Pe
{
struct Student p1;
int num;
char ID_card[13];
};
変数の初期化:
- 単一構造
#include <stdio.h>
struct Student
{
char name[20];
char id[12];
char sex[5];
int high;
};
int main()
{
struct Student p = {
"张三","12312345678","男",183 };
return 0;
}
- 入れ子構造
#include <stdio.h>
struct Student
{
char name[20];
char id[12];
char sex[5];
int high;
};
struct Pe
{
struct Student p1;
int num[10];
};
int main()
{
struct Pe c = {
{
"张三","12312345678","男",183},123 };
return 0;
}
印刷:
int main()
{
struct Student p = {
"张三","12312345678","男",183 };
struct Pe c = {
{
"张三","12312345678","男",183},123 };
printf("%s %s %s %d\n", p.name, p.id, p.sex, p.high);
printf("%s %s %s %d %d\n", c.p1.name,c.p1.id,c.p1.sex,c.p1.high, c.num);
return 0;
}
構造体へのアクセス方法
- 構造体ポインタ
より良い
struct Student
{
char name[20];
char id[12];
char sex[5];
int high;
};
void print2(struct Student* sp)
{
printf("%s %s %s %d\n", sp->name, sp->id, sp->sex, sp->high);
}
int main()
{
struct Student p = {
"张三","12312345678","男",183 };
print2(&p);
return 0;
}
- オペレーター
struct Student
{
char name[20];
char id[12];
char sex[5];
int high;
};
void print1(struct Student sp)
{
printf("%s %s %s %d\n", sp.name, sp.id, sp.sex, sp.high);
}
int main()
{
struct Student p = {
"张三","12312345678","男",183 };
print1(p);
return 0;
}