構造
構造はC言語で特に重要な知識ポイントです。構造により、C言語は複雑な型を記述できるようになります。
たとえば、学生を説明する場合、学生には名前+年齢+性別+学生番号が含まれます。
本について説明します。この本には、本のタイトル+出版社+ディレクトリ+著者およびその他の情報が含まれます。
これらは複雑なオブジェクトであり、C言語ではタイプを
カスタマイズできます。カスタムタイプの1つは構造と呼ばれます。struct
構造体は、いくつかの単一のタイプをグループ化する方法です。
たとえば、名前+年齢+性別+学生番号の情報を持っている人について説明しましょう。
struct Stu
{
char name[20];//名字
int age; //年龄
char sex[5]; //性别
char id[15]; //学号
};
int main()
{
return 0;
}
図面である家を建て、struct Stu
構造物オブジェクトを作成s
し、図面に従ってデータを入力します。
構造の初期化
//打印结构体信息
struct Stu s = {
"张三", 20, "男", "20180101"};
これはデータ型と見なすことができ
struct Stu
、sはデータを格納するために作成され结构体对象
、s
内部のデータは使用され成员名
ずstruct Stu
、内部のこれらの型はスペースを開きません。
印刷
//.为结构成员访问操作符
printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
sで情報を印刷するには、タイプの順序で印刷する必要があります。これに
"张三", 20, "男", "20180101"
対応%s,%d,%s,%s
して、順序を逆にすることはできず、次结构体对象.成员名
の形式である必要があります。
印刷する方法もあります
//
struct Stu *ps = &s;
printf("name = %s age = %d sex = %s id = %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).id);
ps
これは構造体ポインタ変数です。これがポインタのメソッドですが、少し面倒です->
。演算子を直接使用できます。
struct Stu *ps = &s;
printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps-
>id);
ps->name
意味はでメンバーps
を指すことであり、意味は同じですs
name
(*ps).name