结构体:是 C 编程中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。
为了定义结构,必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:
结构变量,定义在结构的末尾,最后一个分号之前,可以指定一个或多个结构变量;
struct add {
char b[5];
int a;
char c
)sum;
下图为结构体的初始化、遍历、调用实例
#include <stdio.h>
8
9 struct ai
10 {
11 char b[5];
12 int a;
13 char c;
14 };//全局变量初始化
15 int main(int argc, char *argv[])
16 {
17 int i;
18 struct ai stu[3]={{"adf",4,'c'},{"abc",6,'r'},{"zcv",8,'t'}};//数
组的初始化
19 for(i=0;i<3;i++)//遍历
20 {
21 // printf("%s\n",stu[i].b);//调用
22 // printf("%d\n",stu[i].a);
23 printf("%d\n",stu[i].c);
24 }
25 return 0;
26 }
结构体和共用体的区别:
1、共用体存放成员的方式,只能一个成员一个成员的存放,结构体是所有成员一起放;
2、共用体大小是最大成员数据类型的字节大小,但是也要遵循对齐原则
下图为结构体的使用案例:
定义一个结构体数组,放一些学生进去,根据学生名字排序:
#include <stdio.h>
8 #include <string.h>
9 int main(int argc, char *argv[])
10 {
11 struct stu{
12 int age;
13 char sex[32];
14 char name[32];
15 };
16 struct stu student[5]={{18,"men","zhangsan"},{20,"men","lulu"},{19,"men"," wangwu"},{45,"men","zhaoli"},{67,"men","lisa"}};
17 int i,j;
18 struct stu temp;
19 for(i=0;i<5;i++)
20 {
21 for(j=0;j<4;j++)
22 {
23 if(strcmp(student[j].name,student[j+1].name)>0)
24 {
25 temp=student[j];
26 student[j]=student[j+1];
27 student[j+1]=temp;
28 }
29 }
30 }
31 for(i=0;i<5;i++)
32 {
33 printf("%d--%s--%s\n",student[i].age,student[i].sex,student[i].name);
34 }
35
36
37 return 0;
38 }