C语言结构体详解及示例
C语言结构体详解及示例
在C语言中,结构体(structure)是一种自定义的复合数据类型,用于存储不同类型的数据项。通过结构体,可以将多个相关的变量组合在一起,形成一个逻辑上的整体,方便数据的组织和管理。
1. 定义结构体
使用 struct 关键字定义结构体,并指定结构体的名称和成员变量。c#include <stdio.h>
// 定义结构体struct Person { char name[50]; int age; float height;};
int main() { // 声明结构体变量 struct Person person1;
// 访问结构体成员变量 strcpy(person1.name, 'John'); person1.age = 30; person1.height = 1.75;
// 打印结构体成员变量 printf('Name: %s
', person1.name); printf('Age: %d ', person1.age); printf('Height: %.2f ', person1.height);
return 0;}
输出:
Name: JohnAge: 30Height: 1.75
2. 结构体嵌套
结构体中可以嵌套其他结构体,形成更复杂的数据结构,例如日期结构体嵌套在学生信息结构体中。c#include <stdio.h>
// 定义日期结构体struct Date { int day; int month; int year;};
// 定义学生信息结构体struct Student { char name[50]; struct Date birthdate; int rollNo;};
int main() { // 声明结构体变量 struct Student student1;
// 访问结构体成员变量 strcpy(student1.name, 'Alice'); student1.birthdate.day = 10; student1.birthdate.month = 5; student1.birthdate.year = 2000; student1.rollNo = 1;
// 打印结构体成员变量 printf('Name: %s
', student1.name); printf('Birthdate: %d/%d/%d ', student1.birthdate.day, student1.birthdate.month, student1.birthdate.year); printf('Roll No: %d ', student1.rollNo);
return 0;}
输出:
Name: AliceBirthdate: 10/5/2000Roll No: 1
3. 结构体数组
可以创建结构体数组来存储多个具有相同结构的数据,例如存储多个点的坐标。c#include <stdio.h>
// 定义点结构体struct Point { int x; int y;};
int main() { // 声明结构体数组 struct Point points[3];
// 初始化结构体数组 points[0].x = 1; points[0].y = 2; points[1].x = 3; points[1].y = 4; points[2].x = 5; points[2].y = 6;
// 打印结构体数组 for (int i = 0; i < 3; i++) { printf('Point %d: (%d, %d)
', i+1, points[i].x, points[i].y); }
return 0;}
输出:
Point 1: (1, 2)Point 2: (3, 4)Point 3: (5, 6)
总结
结构体是C语言中一个强大的特性,它允许我们组织和操作多个相关的数据项。使用结构体可以创建更复杂的数据结构,例如记录、图形、链表等。结构体还可以作为函数参数传递,以便在函数之间传递多个相关的值,使程序更加灵活和高效。
原文地址: https://www.cveoy.top/t/topic/RRl 著作权归作者所有。请勿转载和采集!