在 C 语言 中,我们定义一个 结构体,需要使用 struct 关键字,struct 关键字后面加结构体名,同时,结构体的成员可以有任意多个,且是任意 类型,包括结构体类型。
struct structName{
fieldType1 filed1;
fieldType2 filed2;
fieldType3 filed3;
};
参数 | 描述 |
---|---|
struct | 定义结构体使用的关键字。 |
structName | 结构体名。 |
fieldType1 | 结构体成员变量的类型。 |
filed1 | 结构体成员变量名。 |
我们使用 struct 定义了一个结构体 structName,该结构体有三个字段,字段名分别为 filed1、filed2 和 filed3,它们的类型分别为 fieldType1、fieldType2 和 fieldType3。
同时,这里的 fieldType3 可以是任意类型,包括可以是结构体类型。
定义结构体时,每个字段名后面都需要使用 ;
结尾,同时,结构体定义的最后的大括号后面,同样需要使用 ;
结尾,如果没有分号,则程序会报错。
struct structName structVar;
参数 | 描述 |
---|---|
struct | 定义结构体变量使用的关键字。 |
structName | 结构体名。 |
structVar | 结构体变量名。 |
我们使用 struct 关键字,定义了一个结构体 structName 类型的 变量 structVar,我们在定义结构体变量时需要使用 struct 关键字。
定义结构体变量
#include <stdio.h>
struct Student{
char *name;
int age;
float score;
};
void main()
{
printf("嗨客网(www.haicoder.net)\n\n");
struct Student student;
student.name = "HaiCoder";
student.age = 13;
student.score = 89.5;
printf("Name = %s, Age = %d, Score = %f\n", student.name, student.age, student.score);
}
程序运行后,控制台输出如下图所示:
我们首先,定义了一个结构体 Student,该结构体有三个成员,即一个 字符串 类型的 name、一个 int 类型 的 age 和一个 float 类型 的 score。
接着,我们定义了一个结构体 Student 类型的变量的 student,并分别为该变量的字段赋值,最后,我们使用 printf 打印了结构体中的所有字段的值。
结构体中字段的类型还可以是结构体类型
#include <stdio.h>
struct Person{
char *name;
int age;
};
struct Student{
struct Person person;
float score;
};
void main()
{
printf("嗨客网(www.haicoder.net)\n\n");
struct Person person;
struct Student student;
person.name = "HaiCoder";
person.age = 13;
student.person = person;
student.score = 89.5;
printf("Person Name = %s, Person Age = %d, Score = %f\n", student.person.name, student.person.age, student.score);
}
程序运行后,控制台输出如下图所示:
我们首先,定义了一个 Person 结构体,接着,我们定义了一个 Student 结构体,同时,在 Student 结构体里面还有一个 Person 类型的字段。
接着,我们定义了一个 Person 结构体类型和一个 Student 结构体类型,并且将 Student 结构体里面的 person 字段赋值为了 Person 结构体的变量。
在 C 语言中,我们定义一个 结构体,需要使用 struct 关键字,struct 关键字后面加结构体名,同时,结构体的成员可以有任意多个,且是任意类型,包括结构体类型。