下面是一个C语言结构体的实战代码示例,展示了如何定义结构体、初始化结构体、访问结构体成员以及结构体数组的使用。
示例代码:结构体实战
#include
#include
// 定义一个结构体表示学生信息
struct Student {
int id;
char name[50];
float score;
};
// 函数:打印学生信息
void printStudent(struct Student s) {
printf("Student ID: %d\n", s.id);
printf("Student Name: %s\n", s.name);
printf("Student Score: %.2f\n", s.score);
printf("\n");
}
int main() {
// 初始化一个结构体变量
struct Student student1;
student1.id = 1;
strcpy(student1.name, "Alice");
student1.score = 95.5;
// 打印学生信息
printf("Student 1:\n");
printStudent(student1);
// 使用结构体数组
struct Student students[3];
// 初始化结构体数组
students[0].id = 2;
strcpy(students[0].name, "Bob");
students[0].score = 88.0;
students[1].id = 3;
strcpy(students[1].name, "Charlie");
students[1].score = 92.5;
students[2].id = 4;
strcpy(students[2].name, "David");
students[2].score = 76.5;
// 打印结构体数组中的学生信息
printf("Students in the array:\n");
for (int i = 0; i < 3 i printstudentstudentsi struct student ptrstudent ptrstudent='&student1;' printfaccessing student1 through pointer:\n printfstudent id: d\n ptrstudent->id);
printf("Student Name: %s\n", ptrStudent->name);
printf("Student Score: %.2f\n", ptrStudent->score);
return 0;
}
代码说明:
- 结构体定义:
使用 struct 关键字定义了一个名为 Student 的结构体,包含三个成员:id(学号)、name(姓名)和 score(分数)。
- 结构体初始化:
- 通过 . 运算符访问结构体成员并赋值。
- 示例:student1.id = 1; 和 strcpy(student1.name, "Alice");
- 结构体数组:
- 定义了一个包含3个 Student 结构体的数组 students。
- 通过数组下标访问每个结构体并初始化。
- 结构体指针:
- 定义了一个指向 Student 结构体的指针 ptrStudent。
- 使用 -> 运算符通过指针访问结构体成员。
- 示例:ptrStudent->id 等价于 (*ptrStudent).id。
- 函数传递结构体:
- 将结构体作为参数传递给函数 printStudent,并在函数中打印结构体的内容。
输出示例:
Student 1:
Student ID: 1
Student Name: Alice
Student Score: 95.50
Students in the array:
Student ID: 2
Student Name: Bob
Student Score: 88.00
Student ID: 3
Student Name: Charlie
Student Score: 92.50
Student ID: 4
Student Name: David
Student Score: 76.50
Accessing student1 through pointer:
Student ID: 1
Student Name: Alice
Student Score: 95.50
扩展:嵌套结构体
结构体可以嵌套使用,例如:
#include
struct Date {
int day;
int month;
int year;
};
struct Employee {
int id;
char name[50];
struct Date joinDate;
};
int main() {
struct Employee emp1 = {1, "John", {15, 8, 2020}};
printf("Employee ID: %d\n", emp1.id);
printf("Employee Name: %s\n", emp1.name);
printf("Join Date: %02d/%02d/%04d\n", emp1.joinDate.day, emp1.joinDate.month, emp1.joinDate.year);
return 0;
}
输出:
Employee ID: 1
Employee Name: John
Join Date: 15/08/2020
总结:
- 结构体是C语言中组织复杂数据的强大工具。
- 可以通过 . 运算符访问结构体成员,通过 -> 运算符通过指针访问成员。
- 结构体可以嵌套,也可以作为函数参数传递。
- 结构体数组和指针的使用使得处理大量数据更加方便。
通过这个示例,你可以掌握结构体的基本用法,并能够灵活应用到实际编程中。