
地 址:北京市海淀区66号
电 话:18006757605
网址:www.lbwcode.com
邮 箱:64010368@qq.com
C语言结构体是语言里一种用户自定义的数(shu)据类型(xing),它可(ke)以将不同类型的结(jie)构数据组(zu)合(he)在(zai)一起(qi),结构体的语言里使用可以提(ti)高程序的模块化程度,使得代码更加清晰、结构易于维护,语言里本文将详细介绍C语言结构体(ti)的结构使用方法,包括定(ding)义结构体、语言里声明结构体变量、结构访问结构体(ti)成员、语言里结构体(ti)数组和结(jie)构体指针等。结构(图片来源网络,语言里侵删)
1、结构定义结构体(ti)

要定义一个结构体(ti),语言里需要使(shi)用关键字struct,结构后面跟结构体的语言里名称和包含的成员变量,成(cheng)员变量可以是任何数据类型,如整数、浮点数、字符等,定(ding)义结构体的一般形(xing)式如下:

struct 结(jie)构体名称 { 数据类型 成员变(bian)量1; 数据类型 成员变量2; ...};定义一个表示(shi)学生信息的结构体:

struct Student { char name[20]; int age; float score;};2、声明结构体变量(liang)
声明结构体变(bian)量时,需要使用关键字struct和结构体名称,然后(hou)跟变量名,声明(ming)结构体变量的一般形式(shi)如下:
struct 结构体名称 变量名(ming);
声明一个学生信息的结构体变量:
struct Student stu1;
3、访问结构体成员
要访问结构体变量的成员,需要使用.运算符,给上面声明的学生信息变(bian)量stu1赋值:
strcpy(stu1.name, "张三");stu1.age = 20;stu1.score = 90.5;
4、结构体数组
可以声明一个结构体数组,数组中的每个元素都是结构体类型,声明结构体数组的一般形式如下:
struct 结构体名称 数组名[数(shu)组大小(xiao)];struct Student stuArray[3];
5、结构体指(zhi)针
可以声明(ming)一个结构体指针,指向结构体的首地址,声明(ming)结构体指针的一般形式如下:
struct 结(jie)构体名称 *指针名;声明一个指向学生信息的指针:
struct Student *pStu;
6、初始化结构体变量和数组(zu)
可以在声明时对结(jie)构体变量和数(shu)组进(jin)行初始化(hua),声明并初始化一个学生信息的结构体数组:
struct Student stuArray[] = { { "李四", 22, 85}, { "王五", 21, 90}, { "赵六", 23, 95}};7、使用指针访问结构体成员和数(shu)组元素
可以使用指针访问结构体成员和(he)数组元素,给上面声明的学生(sheng)信息指针pStu赋值:
pStu>age = 20; // 访问指针指向的(de)结构体的成员变量(liang)age,并赋值(zhi)为20pStu>score = 90.5; // 访问指针指向的结构体的成员变量(liang)score,并(bing)赋值为90.5
通过指针访问数(shu)组元素:
“`c pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个元素的member age,并赋值为i+1 }// pStu[i].score = i + 2; // 访问指(zhi)针指向(xiang)的结构体数组的第i个元素的member score,并赋值为i+2 }// for (int i = 0; i < sizeof(stuArray) / sizeof(struct Student); i++) { // 遍历结构体数组 pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个元素的member age,并赋值(zhi)为i+1 pStu[i].score = i + 2; // 访问指针指向的结构体数组(zu)的第i个元素的member score,并赋值为i+2 }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// }// pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个元素的member age,并赋值为i+1 pStu[i].score = i + 2; // 访问(wen)指针指向的(de)结构体数组的第i个元素的(de)member score,并赋值为i+2 for (int i = 0; i < sizeof(stuArray) / sizeof(struct Student); i++) { // 遍历结构体数组 pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个元素的member age,并赋值为i+1 pStu[i].score = i + 2; // 访问指(zhi)针指向的结构体(ti)数组(zu)的(de)第i个元素的member score,并赋值为i+2 }// }// }// }// }// }// }// }// }// pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个元素的member age,并赋值为(wei)i+1 pStu[i].score = i + 2; // 访问指(zhi)针指向的结构体(ti)数组的第i个元素的member score,并赋值为i+2 for (int i = 0; i < sizeof(stuArray) / sizeof(struct Student); i++) { // 遍历结构体数组 pStu[i].age = i + 1; // 访问指针指向的结构体数组的(de)第i个元素的(de)member age,并赋值为i+1 pStu[i].score = i + 2; // 访问(wen)指(zhi)针指向的结构体数组的第i个元素的member score,并赋值为i+2 }// for (int i = 0; i < sizeof(stuArray) / sizeof(struct Student); i++) { // 遍历结构体数组 pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个元素的member age,并赋值为(wei)i+1 pStu[i].score = i + 2; // 访问指针指向的结构体(ti)数组的第i个(ge)元素的member score,并赋值为(wei)i+2 }// pStu[i].age = i + 1; // 访问指针指向的结构体数组(zu)的(de)第i个元素的member age,并赋值为i+1 pStu[i].score = i + 2; // 访问指针指向的结构体数组(zu)的第(di)i个元素的member score,并赋值为i+2 for (int i = 0; i < sizeof(stuArray) / sizeof(struct Student); i++) { // 遍历结构体数(shu)组 pStu[i].age = i + 1; // 访问指针指向的结构体数组的第i个(ge)元素的member age,并赋值为i+1 pStu[i].score = i + 2; //