struct是结构体关键字
我们用C语言中通常都是用关键字来定义类型变量。例如我们的整型变量,int book;是用整型关键字定义出来的。同样的,struct book同样是一个类型,不过我们叫他结构体。我认为的结构体的作用,无外乎是将一些毫无关系的变量整合到一起,来达到产生联系。整合到一起就是把它封装在结构体中。
下面我举个例子:
- #include
- typedef struct Student
- {
- char name[30];
- short age;
- char sex[10];
-
- }Stu;
-
- typedef struct Book
- {
- char bookname[20];
- short price;
- Stu m;
- }B;
- int main()
- {
- //用typedef关键字将结构体类型重定义一个名字叫Stu
- //Stu就是类型名,类似int
- Stu s= {"溟有常青木",18,"男"};
- printf("%s\n",s.name);
- printf("%d\n",s.age);
- printf("%s\n",s.sex);
- //这是麻烦一点的写法
- printf("打印学生信息\n");
- struct Student m = {"张三",19,"男"};
- printf("%s\n", m.name);
- printf("%d\n", m.age);
- printf("%s\n", m.sex);
- printf("打印书的结构体信息\n");
- B b1 = { "C语言程序设计",55,m};
- printf("%s\n", b1.bookname);
- printf("%d\n", b1.price);
- printf("%s\n",b1.m.name);
- return 0;
- }

通过结构体,我们将姓名,年龄,性别这些本来毫不相关的变量,把它封装在结构体中,让别人更加清楚的描述一个物体。
被封装在结构体中的变量可以是整型变量,数组,指针,结构体。
这里调用封装在结构体中的变量,用结构体名.变量名的形式,当然,你也可以用指针。
- #include
- typedef struct Student
- {
- char name[30];
- short age;
- char sex[10];
-
- }Stu;
-
- typedef struct Book
- {
- char bookname[20];
- short price;
- Stu m;
- }B;
- int main()
- {
- //用typedef关键字将结构体类型重定义一个名字叫Stu
- //Stu就是类型名,类似int
- Stu s= {"溟有常青木",18,"男"};
- Stu student = { "阿西吧",18,"男" };
- printf("%s\n",s.name);
- printf("%d\n",s.age);
- printf("%s\n",s.sex);
- //这是麻烦一点的写法
- printf("打印学生信息\n");
- struct Student m = {"张三",19,"男"};
- printf("%s\n", m.name);
- printf("%d\n", m.age);
- printf("%s\n", m.sex);
- printf("打印书的结构体信息\n");
- B b1 = { "C语言程序设计",55,m};
- printf("%s\n", b1.bookname);
- printf("%d\n", b1.price);
- printf("%s\n",b1.m.name);
- Stu* stu = &student;
- printf("打印阿西吧信息\n");
- printf("%s\n",stu->name);
- printf("%d",(*stu).age);
- return 0;
- }